Shiny 闪亮和RMarkdown:渲染多个块

Shiny 闪亮和RMarkdown:渲染多个块,shiny,r-markdown,chunks,Shiny,R Markdown,Chunks,我想创建一个闪亮的RMarkdown应用程序,允许上传自己的数据集。数据集有时不仅影响一个可由renderPlot或类似程序重新渲染的块,有时还影响两个或多个块。请参见以下示例: --- title: Render multiple chunks output: html_document runtime: shiny --- ```{r echo=FALSE} library(shiny) fileInput('file1', 'Choose your own CSV File instea

我想创建一个闪亮的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)
   }) 
```

你知道我该怎么做吗?

把我在评论中的意思应用到你的例子中

将文件读取放在一个反应器中,然后在需要的地方使用它


将文件读取放在一个反应器中,然后在任何需要的地方使用它。但反应性只是部分解决了问题。我最初的exmaple可能太简单了,所以稍微扩展了第三块。新的例子仍然是一个常见的例子,但不起作用,因为它会导致相同的错误。我明白了。但是下一个问题是,如果我在第一个renderPlot函数中实现了一个功能,比如customPlot{…},我就不能在第二个renderPlot函数中调用该函数。如果我错了,请纠正我:。这不是问题,只需使用在两个renderPlot函数中都使用的反应函数来实现此功能
Error: Object 'CB.dat' not found
---
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'))

CB.dat<-reactive({
  dpath <- "CurrentBiologyData.txt"
  if(!is.null(input$file1)){
     dpath <- input$file1$datapath
  }
  read.table(dpath, header = TRUE)  #choose 'CurrentBiologyData.txt'
})
```

```{r echo=FALSE}
renderPlot(plot(CB.dat())
```

```{r}
renderTable(CB.dat())
```