我正在将软件包安装到特定目录,然后使用:
加载到库中library(CustomPackage, lib.loc = "R_Libs")
然后在使用foreach时,我无法确定如何从该自定义位置加载此一个包" R_Libs"。
foreach(i=(1:100), .packages=c("lubridate","CustomPackage")) %dopar% {
some code here...
}
任何想法如何强制从" R_Libs" ?目录
答案 0 :(得分:1)
在R控制台中修改库路径毫无意义。
> library(doParallel)
> library(foreach)
> cl = makeCluster(detectCores() - 1)
> registerDoParallel(cl)
> getDoParWorkers()
[1] 3
> .libPaths()
[1] "D:/Program Files/R/R-3.2.3/library"
> .libPaths(c(.libPaths(), "C:/"))
> .libPaths()
[1] "D:/Program Files/R/R-3.2.3/library" "C:/"
在foreach中,库路径仍然是默认值:
> tmp = foreach(j = 1:2) %dopar% {.libPaths()}
> tmp
[[1]]
[1] "D:/Program Files/R/R-3.2.3/library"
[[2]]
[1] "D:/Program Files/R/R-3.2.3/library"
虽然我不确定foreach究竟是如何工作的,但我的想法是启动几个新的Rscripts。在每个新的Rscript中,库路径将是Rprofile.site中指定的默认路径。
所以最方便的方法是在D:\ Program Files \ R \ R-3.2.3 \ etc \
下的Rprofile.site中添加路径另一种方法是手动加载库,即
tmp = foreach(j = 1:2) %dopar% {
library(xxx, lib.loc = /xxx/xx)
...
}
这更灵活,尤其是当无法访问Rprofile.site时。
答案 1 :(得分:0)
您好,这里还有另一种解决方法:
foreach(i=(1:100), .packages=c("lubridate")) %dopar%{ .libPaths("R_Libs") library("CustomPackage") some code here... }