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

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

最后,我通常使用Shiny运行时将许多Shiny应用程序生成为Rmarkdown-flexdashboard文件。
  -- app1/
       |-- index.Rmd
  -- app2/
       |-- index.Rmd

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

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

最佳答案

与其他所有内容一样,在开发软件包时,请将它们放在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(向下滚动)

关于r - 如何在包内组织Rmarkdown文件(使用Shiny运行时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44848123/

10-12 17:45
查看更多