闪亮与flexdashboard,数据帧可变

问题描述:

内Flexdashboard使用有光泽我想策划和显示一个数据帧,其中该数据帧是从我的侧边栏中输入一个变量:闪亮与flexdashboard,数据帧可变

Inputs {.sidebar} 
----------------------------------------------------------------------- 

```{r} 
selectInput("df", label = h3("Select df"), choices = list("january" = "df1", "february" = "df2")) 
``` 

然后我绘图和显示我的一个标签集内的数据帧:

Row {.tabset} 
----------------------------------------------------------------------- 

### Plot 
```{r} 
renderPlot({ 
plot(fread(paste("/Users/woshitom/Desktop/shiny/",input$df,".csv",sep="")),type="o", col="blue") 
}) 
``` 

### Data 
```{r} 
renderTable(fread(paste("/Users/woshitom/Desktop/shiny/",input$df,".csv",sep=""))) 
``` 

正如你可以看到我加载2次我的CSV:

fread(paste("/Users/woshitom/Desktop/shiny/",input$df,".csv",sep="")) 

相反,我想它存储在一个变量:

my_df <- fread(paste("/Users/woshitom/Desktop/shiny/",input$df,".csv",sep="")) 

但是,当我这样做,我发现了以下错误:

Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.) 

任何想法如何,我应该储存这些数据帧?

+1

尝试用'my_df

+0

谢谢!工作正常,请提交您的答案我要验证它 – woshitom

闪亮的输入应该在渲染函数,观察者或反应中使用。这就是你遇到错误的原因。在你的情况下,因为你想将结果存储在一个变量中,所以要用reactive()创建一个无功变量。这是soltution:

my_df <- reactive({fread(paste("/Users/woshitom/Desktop/shiny/",input‌​$df,".csv",sep=""))}‌​) 
+0

感谢您指出。回答编辑。 –