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

时间:2015-12-23 13:13:11

标签: r shiny rstudio knitr r-markdown

在RMarkdown的Parametrized Reports页面上的最后一个示例之后,我尝试使用Api::Module1::Controller::MenuController::Model界面在Shiny标题内使用以下代码选择我的输入文件:

YAML

params: data: input: file label: 'Input dataset:' value: myData.csv 界面显示,我可以浏览文件,但当我尝试通过ShinyR代码中进一步访问时,我收到以下消息:

  

文件错误(文件," rt"):无法打开连接

如何阅读我的文件?

注意:我看到thread用户在呈现read.csv(file=params$data, header=TRUE)文档时在函数中传递文件路径,但这不是我的意思试图做。我只想从RMarkdown界面中选择它。

修改
在播放了一点之后,我认为问题是当我通过Shiny接口选择并通过params $ data传递的文件时创建的临时文件在我尝试访问它时不再存在。
实际上,shiny会返回file.exists(params$data)

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

1 个答案:

答案 0 :(得分:1)

看起来不再可以复制了。

仅出于解释目的:

  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. 在“编织”下拉菜单中选择“带参数编织”选项

  5. 附加任何有效CSV,然后在“闪亮参数”面板中单击“编织”