【问题标题】:Understanding translation between R and rpy2理解 R 和 rpy2 之间的翻译
【发布时间】:2015-09-09 15:55:20
【问题描述】:

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.

有没有一种简单的方法来找出如何使用rpy2rpy2 中的R 执行每个方法?要获得使用rpy2 的帮助,可以使用

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

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

有没有更好的方法在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

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

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

【问题讨论】:

  • 该链接是 rpy2 旧版本的文档。考虑将 URL 中的 2.2 更改为 2.6。
  • @lgautier 你是对的。谢谢!

标签: r rpy2


【解决方案1】:

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

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

例如,在 ipython 中尝试:

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

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

In [3]: ?base.print

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    相关资源
    最近更新 更多