我的想法很简单,我有一个包装程序包,可以通过reticulate
加载和执行R和Python脚本。
尽管需要通用的文件/代码结构,但其想法是,如果用户要为工作流程定义新方法(例如,更新的分类法),则在scripts文件夹中添加新脚本就足够了(即,将文件放置在rules/
,py/...
中并进行重建)。
完成这项工作的正确方法是什么?
我尝试通过.onLoad
加载文件,即
.onLoad <- function(lib, pkg){
require(reticulate) #I know require is bad practice; this is for example purposes
files <- dir('rules')
lapply(files, function(w){
source(sprintf('rules/%s', w))
source_python(sprintf("py/%s/rule.py", w))
})
}
但是,这似乎是在查看本地目录,而不是在软件包内部。
我发现R能够从.rda
目录或.RData
加载data/
或.txt, .csv
文件,但是仅此而已。扩展如何处理,例如在我的示例中采购文件?
任何帮助将不胜感激!
答案 0 :(得分:0)
文件夹inst/exdata
允许在R包中添加任何类型的数据。这可能是存储与包的核心代码不直接相关的.R
或.py
文件的正确位置。您可以使用system.file("extdata", "file.ext", package="pkg")
访问这些文件。另请参见extdata in R packages。