【发布时间】:2017-04-12 13:38:12
【问题描述】:
我想创建一个允许上传自己的数据集的 Shiny-RMarkdown 应用程序。数据集有时不仅会影响一个可以通过 renderPlot() (或类似方法)重新渲染的块,有时还会影响两个或更多块。请参阅以下示例:
---
title: Render multiple chunks
output: html_document
runtime: shiny
---
```{r echo=FALSE}
library(shiny)
fileInput('file1', 'Choose your own CSV File instead of provided
data',accept=c('text/csv', 'text/comma-separated-values,text/plain',
'.csv'))
go1<-reactive({
dpath <- "CurrentBiologyData.txt"
if(!is.null(input$file1)){
dpath <- input$file1$datapath
}
CB.dat <- read.table(dpath, header = TRUE) #choose 'CurrentBiologyData.txt'
plot(CB.dat)
})
```
```{r echo=FALSE}
renderPlot({
go1()
})
```
```{r}
renderPlot({
print(CB.dat)
})
```
所以如果我上传一个新数据集,我有三个块会受到影响。问题是第三块没有看到填充在第一块中的CB.dat:
Error: Object 'CB.dat' not found
有什么想法可以让它发挥作用吗?
【问题讨论】:
-
将读取的文件放入
reactive,然后在需要的地方使用它 -
谢谢。但是响应式只能部分解决问题。我最初的例子可能太简单了,所以稍微扩展了第三块。新示例仍然是一个常见示例,但无法正常工作,因为它会导致相同的错误。
标签: shiny r-markdown chunks