繁体   English   中英

包中的R source命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM