python - llamar - rpy2 anaconda
Llamando al script R desde python usando rpy2 (1)
source
es una función r
, que ejecuta un archivo r
source. Por lo tanto, en rpy2
, tenemos dos formas de llamarlo, ya sea:
r[''source'']("script.R")
o
r.source("script.R")
r[r.source("script.R")]
es una forma incorrecta de hacerlo.
La misma idea puede aplicarse a la siguiente línea.
Soy muy nuevo en rpy2, así como en R.
Básicamente tengo un script de R, script.R, que contiene funciones, como rfunc (carpeta). Se encuentra en el mismo directorio que mi script de python. Quiero llamarlo desde Python, y luego lanzar una de sus funciones. No necesito ninguna salida de esta función R. Sé que debe ser muy básico, pero no puedo encontrar ejemplos de códigos de python que llamen a R. Lo que estoy haciendo actualmente, en Python:
import rpy2.robjects as robjects
def pyFunction(folder):
#do python stuff
r=robjects.r
r[r.source("script.R")]
r["rfunc(folder)"]
#do python stuff
pyFunction(folder)
Estoy recibiendo un error en la línea con la fuente:
r[r.source("script.R")] File "/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py", line 226, in __getitem__ res = _globalenv.get(item) TypeError: argument 1 must be string, not ListVector
No entiendo cómo el argumento que le doy no es una cadena, y supongo que el mismo problema sucederá en la siguiente línea, siendo la carpeta una cadena de python, y no una cosa de R.
Entonces, ¿cómo puedo llamar correctamente a mi guión?