我使用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()
})
```
然而,一旦用户选择并加载数据 - 我似乎无法操纵它,因为反应式表达式load_table()
不像我以前使用的数据帧那样工作。
接下来我要做的是以任何可能的方式操纵load_table()
。例如,按日期范围过滤数据或只是添加其他列。但我似乎无法操纵load_table()
。而且我无法使用反应函数来获得该表。
我知道在StackExchange上已经有类似的问题,但它似乎永远不是我需要的。我在这里缺少什么?
此致 ž