如何在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)
我试过&#34; myfunctions / functions.R&#34;,&#34; /myfunctions/functions.R" ;,&#34; ../ myfunctions / functions.R&#34;但确实有效。
正确的源路径如何?这是我第一次尝试使用R套装。
答案 0 :(得分:0)
看起来您正在尝试将程序包中的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文件创建变量......