如何访问作为 RMarkdown 文档中的参数传递的文件中的数据?

How do I access the data from a file passed as parameters in a RMarkdown document?

按照 RMarkdown 的 Parametrized Reports 页面上的最后一个示例,我尝试将 Shiny 接口用于 select 我的输入文件,在 YAML 中使用以下代码header:

params:  
  data:  
    input: file  
    label: 'Input dataset:'  
    value: myData.csv  

Shiny 界面出现,我开始浏览文件,但是当我尝试通过 read.csv(file=params$data, header=TRUE)R 代码中进一步访问它时,我得到了以下消息:

Error in file(file, "rt") : cannot open the connection

我怎样才能阅读我的文件?

注意:我看到一个用户在渲染RMarkdown文档时在一个函数中传递文件路径,但是这个这不是我想要做的。我只是希望能够从 Shiny 界面 select 它。

编辑
玩了一会儿之后,我认为问题是当我尝试访问时,通过 shiny 接口读取我 select 并作为 params$data 传递的文件时创建的临时文件不再存在它。
的确,file.exists(params$data) returns FALSE

所以我想我的问题现在变成了:我如何在删除这个临时文件之前读取它?

看来不能再复制了

只是为了解释这是如何完成的:

  1. 创建新的 RMarkdown 文档
  2. 将以下 yaml 块添加到顶部:

    params:  
      data:  
        input: file  
        label: 'Input dataset:'  
        value: myData.csv  
    
  3. 将以下 R 块添加到文档中:

    ```{r data}
    cat(params$data)
    c <- read.csv(params$data)
    print(c)
    ```
    
  4. Select 在 "Knit" 下拉菜单下 "Knit with Parameters" 选项

  5. 附加任何有效的 CSV 文件,然后在 Shiny 参数面板中单击 "Knit"