2016-11-22 65 views
1

內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 < - 反應({的fread(糊( 「/用戶/ woshitom /桌面/光澤/」,輸入$ df,則 「CSV」,月= 「」) )})' –

+0

謝謝!工作正常,請提交您的答案我要驗證它 – woshitom

回答

1

閃亮的輸入應該在渲染函數,觀察者或反應中使用。這就是你遇到錯誤的原因。在你的情況下,因爲你想將結果存儲在一個變量中,所以要用reactive()創建一個無功變量。這是soltution:

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

感謝您指出。回答編輯。 –