2015-11-03 3 views
0

Я устанавливаю пакет к конкретному каталогу, а затем загружаются в библиотеку с помощью:Укажите местоположение пакета в Еогеасп

library(CustomPackage, lib.loc = "R_Libs") 

Тогда при использовании Еогеасп у меня возникают проблемы, выяснить, как загрузить этот один пакет от пользовательское местоположение «R_Libs».

foreach(i=(1:100), .packages=c("lubridate","CustomPackage")) %dopar% { 
some code here... 
} 

Любые идеи о том, как заставить этот пакет считывать из каталога «R_Libs»?

+0

добавить каталог в '.libPaths', возможно – rawr

ответ

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:/" 

Внутри Еогеасп, пути библиотеки по-прежнему по умолчанию:

> 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" 

Хотя я не уверен, как именно Еогеасп работает, но идея состоит в том, чтобы запустить несколько новых Rscripts. В каждом новом Rscript путь к библиотеке будет по умолчанию указанным в Rprofile.site.

Так что самый удобный способ для добавления пути в Rprofile.site под D: \ Program Files \ R \ R-3.2.3 \ и т.д. \

Другой способ загрузить библиотеку вручную, т.е.

tmp = foreach(j = 1:2) %dopar% { 
      library(xxx, lib.loc = /xxx/xx) 
      ... 
     } 

Это более гибко, особенно если у вас нет доступа к Rprofile.site.

 Смежные вопросы

  • Нет связанных вопросов^_^