Datatable(DT)Shiny R - 选择所有找到的行

8
我有一个关于datatable(DT)的问题,我在Shiny中使用它。我有很多数据(>5000000行),并使用带有筛选器的datatable(DT)在闪亮应用程序中显示它。根据用户的筛选偏好,假设它给我们550行(但它可以给我们更多或更少)。由于分页,我不能看到所有550行(假设pageLength是100),甚至更糟糕的是,我不能进一步显示所有过滤后的行在情节中,因为函数input$tabelle_rows_all使用当前页面上的行(我必须先更改条目数量)。是否有任何方法可以获取datatable过滤后的所有找到的行(不依赖于pageLength)?
例子:
library(shiny)
library(DT)
library(ggplot2)

x <- as.numeric(1:1000000)
y <- as.numeric(1:1000000)
data <- data.frame(x,y)

shinyApp(
  ui = fluidPage(dataTableOutput('tableId'),
                 plotOutput('plot1')),
  server = function(input, output) {    
    output$tableId = renderDataTable({
      datatable(data, options = list(pageLength = 100, lengthMenu=c(100,200,300,400,500,600)))
    })
    output$plot1 = renderPlot({
      filtered_data <- data[input$tableId_rows_all, ]
      ggplot(data=filtered_data, aes(x=x,y=y)) + geom_line()
    })
  }
)

感谢提供的信息。

你使用哪个版本的DT?例如,你需要DT(>=0.1.26),请参考(https://yihui.shinyapps.io/DT-info/)。 - Batanichek
DT 0.1。有更新版本可用吗?我刚刚检查了一下,似乎只有0.1可用。 - Mal_a
你可以安装 Github 版本 devtools::install_github('rstudio/DT') (需要已安装 library(devtools))。 - Batanichek
刚安装时出现了错误:> `devtools :: install_github('rstudio / DT') 从URL https://api.github.com/repos/rstudio/DT/zipball/master下载GitHub repo rstudio / DT @ master 安装DT “C:/ Program Files / R / R-32〜1.3 / bin / x64 / R”--no-site-file --no-environ --no-save --no-restore CMD INSTALL
“C:/ Users / asadm / AppData / Local / Temp / Rtmpkf86pZ / devtools870457c693c / rstudio-DT-2c636f6”
--library =“C:/ Users / am / Documents / R / win-library / 3.2”--install-testsDer Befehl“C:\ Program”要么拼写错误,要么找不到。 错误:命令失败(1)`
- Mal_a
你的示例中有一个错误。第17行应该是filtered_data <- data[input$tbl_rows_all,] - CPhil
显示剩余2条评论
1个回答

6

你确定它还没有在工作吗?从版本0.0.65开始,你应该有以下内容:

input$tableId_rows_current: 当前页面行的索引
input$tableId_rows_all: 所有页面行的索引(在搜索字符串过滤表格后)
来自DT文档

我正在使用tableId_rows_all在仪表板中,确切地说它是有效的。


我正在shiny dashboard中使用datable DT版本0.1,但我确定它对我来说不起作用 :( 无法理解为什么。 - Mal_a
@Malvina_a,devtools::install_github('rstudio/DT') 运行成功了吗?如果是的话,我不知道问题可能是什么。如果没有成功,那么我猜想当您解决这个问题时,您的问题可能会消失 - 或许可以让IT给您临时管理员权限? - CPhil
我刚刚尝试了一种方法,我下载了帖子中提到的开发版本(http://stackoverflow.com/questions/34140704/r-shiny-where-can-we-find-the-tar-gz-file-of-the-master-version-of-dt-packa),然后我使用命令`install.packages("C:/Users/XX/Downloads/DT-master.tar.gz",lib="C:/Users/XX/Documents/R/win-library/3.2")`。但是我仍然遇到错误:`Warning in install.packages : package ‘C:/Users/XX/Downloads/DT-master.tar.gz’ is not available (for R version 3.2.3)`... - Mal_a

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接