[英]R source command in package
如何在r-packages中获取功能文件?
示例(我的包的树目录,包名称为“ pack”):
- man (help files)
- R
-- pack.function1.R
-- pack.function2.R
-- ...
- myfunctions
-- functions.R
DESCRIPTION
NAMESPACE
...
functions.R
foo <- function(bar) {
return(bar)
}
pack.function1.R
...
source("myfunctions/functions.R")
foo(bar)
我尝试了“ myfunctions / functions.R”,“ / myfunctions / functions.R”,“ ../ myfunctions / functions.R”,但它确实起作用。
正确的源路径如何? 这是我第一次尝试使用R包。
您似乎正在尝试将软件包中的R代码文件组织到不同的(子)文件夹中。
R软件包不支持此功能。
如果安装软件包,则可以从软件包中的函数查询安装路径:
system.file(package = "data.table")
[1] "/home/ryoda/R/x86_64-pc-linux-gnu-library/3.4/data.table"
但是,如果查看已安装软件包的R文件夹,您将找不到您的R代码,而是所有R代码的“预编译”映像(请参阅* .rdb和* .rdx文件)。
因此,您不能在R中获取其他R源代码文件。
有关文件夹结构的详细信息,请参见: https : //cran.r-project.org/doc/manuals/R-exts.html#Data-in-packages
PS :(至少)有一个“后门”:
如果将软件包的R文件放在名为inst
的软件包根目录下的子文件夹中,则inst
子文件夹的内容将被递归复制到安装目录,并且可能是源目录(请使用system.file(package = getPackageName())
从软件包中检索安装路径。
但是,这远远超出了软件包的工作方式。
一个有效的例外可能是:提供预配置的配置文件,这些配置文件是创建变量的纯R文件...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.