как использовать rpy2 в среде packrat? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь использовать пакет R, который я установил, используя пакет R packrat, который позволяет создать виртуальную среду, похожую на virtuanlenv в python.Но у меня ничего не получается.

В консоли, использующей RI, можно успешно запустить следующий код:

cd /path/to/packrat/environment
R # this launch a R console in the packrat environment
library(mycustompackage)
result = mycustompackage::myfunc()
q()

Я хотел бы сделать то же самое, используя rpy2, но я не могу активироватьПакратная среда.Далее следуйте тому, что я проверил безуспешно.

from rpy2.robjects import r
from rpy2.robjects.packages import importr

packrat_dir = r.setwd('/path/to/packrat/environment')
importr('mycustompackage')
result = r.mycustompackage.myfunc()

Но у 'importr' не получается, потому что он не может найти пакет 'mycustompackage'.Либо неудачно:

importr('mycustompackage', lib_loc='/path/to/packrat/environment')

Ни то, ни другое:

os.environ['R_HOME'] = '/path/to/packrat/environment'
importr('mycustompackage', lib_loc ='/path/to/packrat/environment')  

Есть предложения по использованию rpy2 в пакетных средах?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Очень хорошее замечание (скрытый файл = забытый файл).Я узнал, как заставить его работать:

from rpy2.robjects import r
from rpy2.robjects.packages import importr

# Init the packrat environment
r.setwd('/path/to/packrat/environment')
r.source('.Rprofile')

# use the packages it contains
importr('mycustompackage')    
result = r.myfunc()

lgautier , вы сделали мой день, большое спасибо.

0 голосов
/ 28 ноября 2018

Я не знаком с пакетом R packrat, но замечаю, что коды bash + R и Python / rpy2 имеют небольшую разницу, которая может иметь большое значение: в случае bash + R, когда запускается Rон уже находится в вашем каталоге проекта packrat, тогда как в случае Python / rpy2 R запускается из другого каталога и перемещается в каталог проекта packrat с помощью setwd().

Я читал, что packrat использует файл.Rprofile (https://rstudio.github.io/packrat/limitations.html), оценивается R во время запуска, если он находится в текущем каталоге. Я подозреваю, что проблема связана с тем, как используется packrat, а не с rpy2.

...