如何从任何工作目录

时间:2016-12-12 12:18:55

标签: r r-package packrat

我使用packrat构建了一个包来处理依赖版本。

@nyzls65c:~/private/research$ tree -L 1 -a sp.util  
sp.util                                                     
|-- .Rbuildignore                                           
|-- .Rhistory                                               
|-- .Rprofile                                               
|-- .Rproj.user                                             
|-- DESCRIPTION                                             
|-- NAMESPACE                                               
|-- R                                                       
|-- Read-and-delete-me                                      
|-- man                                                     
|-- packrat                                                 
|-- sp.util.Rproj 

当我从包路径R启动~/private/research/sp.util时,我可以看到packrat处理我的库:

@nyzls65c:~/private/research/sp.util$ Rscript -e ".libPaths()"                       
WARNING: ignoring environment value of R_HOME                                                
[1] "~/private/research/sp.util/packrat/lib/x86_64-redhat-linux-gnu/3.3.0"
[2] "~/private/research/sp.util/packrat/lib-ext"                          
[3] "~/private/research/sp.util/packrat/lib-R"

当我从其他任何地方开始时

@nyzls65c:~/private/research$ Rscript -e ".libPaths()"        
WARNING: ignoring environment value of R_HOME                         
NULL                                                                  
[1] "~/R/x86_64-redhat-linux-gnu-library/3.3"      
[2] "/usr/lib64/R/library"                                            
[3] "/usr/share/R/library"                                            

我想packrat所做的是加载它在包目录中生成的.Rprofile文件并设置.libPaths()

问题在于,当我执行library(sp.util)时,除非我在正确的目录中,否则将加载错误的包。 (我从sessionInfo()内部开始/sp.util进行了测试,但没有,而且逻辑上Depends中的包不一样了)

我想要做的是使用Rscript /path/script.r,在sp.util中加载script.r并加载正确的(即包装本地的)依赖项。我不想从给定的路径启动Rscript。

我是否需要将libPaths()自己设置为R_LIB_USER来执行此操作?

并且说我需要使用packrat的多个包,它是否是一个可行的选择来执行上述操作?

0 个答案:

没有答案