簡體   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