DT Shiny R - [输入$ tableId_rows_all,]无法正常工作

时间:2016-02-11 10:11:31

标签: r shiny dt

我无法在绘图中显示数据表中的所有已过滤行,以及假设使用所有已过滤行的函数 - > input$tabelle_rows_all,仅在当前页面上使用行!我的DT版本是0.1,我无法将其更新为 github版本。我尝试了很多方法,首先通过devtools::install_github('rstudio/DT'),但我收到了错误

...--install-tests Der Befehl "C:\Program" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Error: Command failed (1)

比我下载开发版本(https://github.com/rstudio/DT/archive/master.tar.gz)而我使用了命令

install.packages("C:/Users/XX/Downloads/DT-master.tar.gz",lib="C:/Users/XX/Docu‌​ments/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) ...

这是我需要DT的非常必要和重要的选项,无论如何我可以完成它吗?

简单的代码示例:

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()
    })
  }
)

感谢您的任何兴趣

[只是再次清除]

我获得了相当大的数据(&gt; 5000000行),并且我使用带过滤器的数据表(DT)在闪亮的app中显示它。根据用户对过滤的偏好,我们假设它给了我们550行(但它可以给我们更多或更少)。由于分页,我无法看到所有550行(假设pageLength为100)或者甚至更糟,我无法在图中进一步显示所有已过滤的行,作为函数input$tabelle_rows_all 使用当前页面上的行(我必须先更改条目编号)。 在过滤数据表之后有没有办法获取所有找到的行(不依赖于 pageLength)?

我在某处读到了问题可能是版本od DT,所以也许DT 0.1不支持绘制所有找到的行的函数,所以我希望github版本的DT是我问题的解决方案。但我可能错了!

1 个答案:

答案 0 :(得分:0)

根据您收到的错误我相信您有更新版本的R(3.2.3),DT包尚不支持。

如果您将R版本降级为旧版本,它应该可以正常工作(在版本3.1.2上它适用于我)。如果您使用Rstudio,This article可能会帮助您安装旧版本的R,如果您在ubuntu上使用R,则可以this topic

安装旧的(呃)R版本后,可以输入以下命令安装软件包:

install.packages("DT")

然后你应该可以输入:

来加载它
library(DT)