2010-11-11 36 views
0

如何配置Sweave它的工作和識別Rpy2?如何配置Sweave它的工作和識別Rpy2?

我用這個

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)'] 

,但我得到這些錯誤

[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):] 

感謝您的答案和幫助

回答

2

用方括號來獲得R對象,然後從Python中調用它。或使用()括號將一條線傳遞給R:

R["Sweave"]("/var/www/tmp/pywps/central.Rnw") 
R('Sweave("/var/www/tmp/pywps/central.Rnw")') 

Sweave需要一個資本S(在我的測試中)。

1

呃,工作的呢?你不是以同樣的方式完成所有R []調用。

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

(我從來沒有用過Rpy2所以這完全是猜測。)

+0

感謝,工作,但沒有評估大塊:S – ricardo 2010-11-12 00:04:47

1

使用R包導入程序可讓您在IDE或交互式shell中使用自動完成功能,並使代碼更像Python。

from rpy2.robjects.packages import importr 
utils = importr('utils') 
utils.Sweave("/var/www/tmp/pywps/central.Rnw")