2016-12-29 83 views
0

我正在使用devtools构建R包。我已经构建了一个包含一些我想包含的函数的包。我想在启动时加载包和文档。我的包文件位于的位置:使用devtools构建R包错误::文档

'~/global/Rcode/Startup Package' 

我.Rprofile文件看起来像这样:

.First <- function(){ 
    library(devtools) 
    location <- '~/global/Rcode/Startup Package' 
    document(location) 
} 

但是当我打开R,从包中功能加载,但文件是不是。

如果我运行相同的代码行之后启动自己,即:

library(devtools) 
location <- '~/global/Rcode/Startup Package' 
document(location) 

那么一切工程和包装正确的文件。这似乎是一个相当奇怪的错误!

(作为一个部分修复,我可以运行

install(location) 

,并把它像一个正常的[R包,一切工作正常,但是这需要时间,我打算更新包了很多,真的不希望有这每一次运行,尤其是在devtools选项应该工作。)

+0

我觉得你误解了'document'函数的用途。它旨在将原始R代码中的roxygen注释转换为.Rd文档。 –

+0

是的,我意识到,但是,如果你的包中有一个函数:f。你在你的包上实现了devtools :: document,然后如果你这样做,那么你应该得到f的文档。我的观点是,如果你通过一个看起来奇怪的启动文件来做到这一点是行不通的。 –

回答

4

确保utils加载devtools之前加载,否则没有help功能devtools覆盖。

随着.Rprofile:

.First = function(){ 
library(utils) 
library(devtools) 
document("./foo") 
} 

则R启动云:

[stuff] 
Type 'q()' to quit R. 

Updating foo documentation 
Loading foo 

而且helpdevtools版本:

> environment(help) 
<environment: namespace:devtools> 

删除library(utils),你会看到的帮助函数是utils中找不到你的packag的那个e文件。