0

如何配置 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):]

感谢您的回答和帮助

4

3 回答 3

2

使用方括号获取 R 对象,然后从 Python 调用它。或者使用 () 括号将一行传递给 R:

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

Sweave 需要一个大写的 S(在我的测试中)。

于 2010-11-11T23:42:45.657 回答
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,所以这完全是猜测。)

于 2010-11-11T23:41:19.727 回答
1

使用 R 包导入器可以让您在 IDE 或交互式 shell 中使用自动完成功能,并使代码更像 Python。

from rpy2.robjects.packages import importr
utils = importr('utils')
utils.Sweave("/var/www/tmp/pywps/central.Rnw")
于 2010-11-12T18:27:30.083 回答