cómo configurar Sweave Es un trabajo y reconocer para Rpy2?
Pregunta
cómo configurar Sweave Es un trabajo y reconocer para Rpy2?
Yo uso este
import rpy2.robjects as robjects
R["library"]("utils")
R["library"]("tools")
R['sweave("/var/www/tmp/pywps/central.Rnw")']
R['texi2dvi("/var/www/tmp/pywps/central.tex", pdf=TRUE)']
pero consigo estos errores
[File "/usr/lib/python2.6/dist-packages/rpy2/robjects/__init__.py", line 241, in __getitem__
res = rinterface.globalenv.get(item)
LookupError: 'Sweave("/var/www/tmp/pywps/central.Rnw")' not found
Traceback (most recent call last):]
Gracias por sus respuestas y ayuda
Solución
Use corchetes para obtener un objeto R, entonces llamaremos a partir de Python. O uso () soportes para pasar una línea a R:
R["Sweave"]("/var/www/tmp/pywps/central.Rnw")
R('Sweave("/var/www/tmp/pywps/central.Rnw")')
Sweave necesita un capital de S (en mis pruebas).
Otros consejos
Uh, hace este trabajo? Usted no está haciendo todas las invocaciones del R [] de la misma manera.
import rpy2.robjects as robjects
R["library"]("utils")
R["library"]("tools")
R["sweave"]("/var/www/tmp/pywps/central.Rnw")
R["texi2dvi"]("/var/www/tmp/pywps/central.tex", "pdf=TRUE")
(nunca he usado Rpy2 así que esto es totalmente adivinando.)
Usando el importador paquete R le permitiría utilizar la terminación automática en su IDE o shell interactivo y hacer que el código sea más Python similar.
from rpy2.robjects.packages import importr
utils = importr('utils')
utils.Sweave("/var/www/tmp/pywps/central.Rnw")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow