目前我有一个分析项目,我将其视为包。 所以目前我有以下结构:
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应用程序链接到该服务器的最佳方法是什么?
答案 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(向下滚动一下)