【发布时间】:2015-02-23 09:42:08
【问题描述】:
我希望能够在下面创建的数据框底部添加总计/小计,显示为 DataTable。我希望使用应用的每个 DataTable 过滤器来更新总计/小计。假设如果用户过滤前 10 条记录,我希望总数计算前 10 条记录的总和,或者如果用户过滤 20 条记录,我希望总数反映 20 条记录的总和等等。
我已经想到了一种在 R 中实现这一点的方法,方法是将新行绑定到现有数据框以执行所需的计算。但我想知道是否有一种简单的方法可以通过 DataTables 选项实现这一点。类似于 this example 使用 页脚回调 功能。
#Load required packages
require(shiny)
#Create a dataframe
df <- data.frame(random=1:25)
server <- function(input,output,session){
#Display df using DataTable and apply desired options
output$display <- renderDataTable({df})
}
ui <- shinyUI(fluidPage(
#Add a title
h1('Testing TableTools'),
mainPanel(
#Display results
dataTableOutput('display')
)
))
shinyApp(ui = ui, server = server)
【问题讨论】:
-
最坏的情况是你只是将JS代码复制到R;请参阅第 2.5.2 节:rstudio.github.io/DT
-
正确。甚至我相信
I()函数也会做同样的事情。但是你知道我应该使用什么语法来计算总数吗?我对 JavaScript 语言的了解非常有限。 -
对于新的 DT 包,您将使用 JS() 而不是 I() 来包装 JavaScript 代码。
-
你解决过这个问题吗?即使使用 rbind,也需要解决一些反应式编程问题才能实现这一点。
-
很遗憾没有。因为它不是一个关键功能,所以我决定放弃它。所以看起来它从那以后就没有得到解决?
标签: r datatables shiny