如何操作使用反应式表达式的渲染数据表?

时间:2017-05-31 14:30:21

标签: r shiny r-markdown reactive-programming

我使用Shiny很新。下面的代码实际上是一个带有Shiny编码的Rmarkdown文件的一部分。

我在处理Shiny中的反应式表达时遇到了问题。基本上在调用反应式表达式之后,我可以渲染或绘制表达式。我不能轻易做的是在调用之后操纵该数据。

我设法渲染并输出load_table()。这只是告诉它在点击按钮上加载csv文件。请参阅以下代码:

```{r UI inputs}
wellPanel(
  fileInput("dataset", label = "Select a .csv File to upload",
            accept=c("text/csv",
                     "text/comma-separated-values,text/plain",
                     ".csv")),

actionButton(inputId = "loadbutton", label = "Load Data")
)

dataTableOutput("df")

```

```{r Server Functions}
load_table <- eventReactive(input$loadbutton, {
    # input$file1 will be NULL initially. After the user selects
    # and uploads a file, it will be a data frame with 'name',
    # 'size', 'type', and 'datapath' columns. The 'datapath'
    # column will contain the local filenames where the data can
    # be found.
    inFile <- input$dataset

    if (is.null(inFile)){
      return(NULL)}
    else {
      read.csv(inFile$datapath)}
    })

output$df <- renderDataTable({
  load_table()
})
```

我的输出 enter image description here

我加载的文件示例 enter image description here

然而,一旦用户选择并加载数据 - 我似乎无法操纵它,因为反应式表达式load_table()不像我以前使用的数据帧那样工作。

接下来我要做的是以任何可能的方式操纵load_table()。例如,按日期范围过滤数据或只是添加其他列。但我似乎无法操纵load_table()。而且我无法使用反应函数来获得该表。

我知道在StackExchange上已经有类似的问题,但它似乎永远不是我需要的。我在这里缺少什么?

此致 ž

0 个答案:

没有答案