了解R和rpy2之间的转换

时间:2015-09-09 15:55:21

标签: r rpy2

rpy2的文档令我困惑。在R中,可以使用help()界面查找R中某些内容的实际效果。例如,help(print)显示了如何使用print();它给出了描述,用法和例子,例如:

‘print’ prints its argument and returns it _invisibly_ (via
 ‘invisible(x)’).  It is a generic function which means that new
 printing methods can be easily added for new ‘class’es.

是否有一种简单的方法可以找出如何使用Rrpy2rpy2执行每个方法?要使用rpy2获取帮助,可以使用

>>> from rpy2.robjects.packages import importr
>>> utils = importr("utils")
>>> help_doc = utils.help("print")

然后将对象转换为字符串以查看文档,即str(help_doc)。但是,这只会打印来自R的文档,它不会告诉我如何在print中实现rpy2

有更好的方法可以在Rrpy2之间快速翻译吗?

示例:加载数据文件file.Rdata

R中,可以使用函数load(),即

 source("file.Rdata")

并上传数据文件。

rpy2中,可以使用load()函数并根据需要转换为Python对象,即

>>> import rpy2.robjects as robjects
>>> robjects.r['load']("file.RData")

然后,为了在numpy中操纵这些对象,可以使用

from rpy2.robjects import numpy2ri

使用Rnumpynumpy.asarray()向量/数组转换为numpy.array()数组。

http://rpy.sourceforge.net/rpy2/doc-2.6/html/numpy.html

1 个答案:

答案 0 :(得分:0)

rpy2提供了访问R数据结构或函数的不同方法。

使用importr(),您有许多便利功能。其中一个是从R手册页动态生成Python文档字符串。

例如,尝试使用ipython:

In [1]: from rpy2.robjects.packages import importr

In [2]: base = importr("base")

In [3]: ?base.print

对于rpy2特定的数据结构和功能,有文档(问题中的链接)。不完美,但随着时间的推移,感谢您的贡献和反馈。