如何在包中组织Rmarkdown文件(使用Shiny运行时)

时间:2017-06-30 13:50:23

标签: r shiny rstudio r-package flexdashboard

目前我有一个分析项目,我将其视为包。 所以目前我有以下结构:

mycoolanalysispackage/
|-- .Rbuildignore
|-- .gitignore
|-- DESCRIPTION
|-- NAMESPACE
|-- inst
|-- vignettes
|-- R
`-- mycoolanalysispackage.Rproj

最后,我通常使用Shiny运行时生成许多Shiny应用程序作为Rmarkdown-flexdashboard文件。

  -- app1/
       |-- index.Rmd
  -- app2/
       |-- index.Rmd

我的问题是,我应该在哪个package子目录中放置这些应用程序目录(以及它们的index.Rmd文件)?

我也有本地Shiny Server,将Rmarkdown-flexdashboard应用程序链接到该服务器的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

与其他所有内容一样,在开发包时将它们放在inst文件夹的子文件夹中。安装软件包后,inst文件夹中的所有文件夹都将移动到软件包文件夹,因此可用作子文件夹。所以

mycoolanalysispackage/
|-- .Rbuildignore
|-- .gitignore
|-- DESCRIPTION
|-- NAMESPACE
|-- inst
     |-- app1/
       |-- index.Rmd
     |-- etc...
|-- R
`-- mycoolanalysispackage.Rproj

要从R函数中访问文件,您可以使用system.file

system.file("app1","index.Rmd",package = "mycoolanalysispackage")

将为您提供app1的index.Rmd的确切路径。然后,可以使用该结果使用适当的函数部署应用程序。

另请参阅手册Writing R Extensions(向下滚动一下)