Добавление плагина dataTables в блестящий R
Я пытаюсь использовать таблицы данных API sum()
Плагин в моем приложении без успеха. Следующее приложение работает:
library(shiny)
library(DT)
set.seed(2282018)
company <- data.frame(Company = letters[1:10], Units = round(runif(10,
1000, 10e6), 0),
Price = scales::dollar(runif(10, 200, 1230)), stringsAsFactors = F)
jsCode <- "function(row, data, start, end, display) {
var api = this.api(), data;
total = api.column(1).data().reduce( function(a, b) {return a + b}, 0);
$( api.column(1).footer() ).html('Total: ' + total);
}"
# UI ----
ui <- function(){
fluidPage(
sidebarLayout(
sidebarPanel(numericInput("nums", label = "Num Input", value = 1, min = 1, max = 10)),
mainPanel(dataTableOutput("mytable"))
)
)
}
# server ----
server <- function(input, output, session){
cont <- htmltools::withTags(table(
tableHeader(names(company)),tableFooter(names(company))
))
output$mytable <- DT::renderDataTable( {
DT::datatable(company,
container = cont,
caption = tags$caption("Example"),
filter = "none",
rownames = F,
options = list(autoWidth = T,
pageLength = 10,
scrollCollapse = T,
dom = 'lftp',
footerCallback = JS(jsCode))
)
}
)
}
runApp(list(ui = ui, server = server))
Обратите внимание, что объект кода js jsCode
работает, но я хотел бы переписать это с:
jsCode <- "function(row, data, start, end, display) {
var api = this.api(), data;
// change below
total = api.column(1).data().sum();
$( api.column(1).footer() ).html('Total: ' + total);
}"
Этот код также должен работать, если я правильно понимаю документацию, но мне не удается загрузить плагин.
Спасибо
1 ответ
Согласно документации, DT
поддерживает только два DataTables
подключаемые модули:
В настоящее время эти плагины были интегрированы в DT:
- Сортировка
- натуральный
- фильтрация
- searchHighlight
Это выглядит как sum()
плагин не входит в DT
, В документе говорится, что вы можете подать запрос на функцию, используя проблемы Github, если вы хотите sum()
плагин будет добавлен.