我正在创建一个R包,并希望用子目录组织我的R子目录。由于只导出了根目录下R文件中定义的函数,因此我将此代码添加到根目录下的一个文件中:
sourceDir <- function(path, trace = TRUE, ...) {
for (nm in list.files(path, pattern = "\\.[RrSsQq]$")) {
print(nm)
if(trace) cat(nm,":")
source(file.path(path, nm), ...)
if(trace) cat("\n")
}
}
sourceDir("R/DataGenerator")
当我使用&#34; CRTL + SHIFT + B&#34;在RStudio上,我看到nm文件来源。但是一旦加载了包,子目录R / DataGenerator中定义的函数都不可访问,既不使用::也不使用:::。
如何导出R子目录中定义的函数?它甚至可能吗?
答案 0 :(得分:1)
使用DESCRIPTION文件中的Collate:字段指定要包含的文件的路径
awk 'BEGIN { ORS="\001" } {...code...}' | tr '\001' '\0'
生成整理行的助手可能类似于
Collate: foo.R bar/baz.R
答案 1 :(得分:1)
正如马丁·摩根和我之间接受的答案的注释中的讨论中所指出的那样,这似乎不适用于当前的R版本。我要获得更好的文件组织性的解决方法是使用子目录名称作为文件名的前缀。