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