我有一个R数据帧,保存在Database02.Rda中。正在加载
import rpy2.robjects as robjects
robjects.r.load("Database02.Rda")
工作正常。但是:
^{pr2}$收益率
NULL
另外,作为一个例子,列214(如果从0开始计数,则为213)命名为REGION。在
print(robjects.r.table(robjects.r["df"][213]))
工作正常:
Region 1 Region 2 ...
9811 3451 ...
但我们也应该
print(robjects.r.table("df$REGION"))
然而,这会导致
df$REGION
1
(对于根本不存在的列名也是如此);另外:
print(robjects.r.table(robjects.r["df"]["REGION"]))
给出错误:
TypeError: SexpVector indices must be integers, not str
现在,docs例如,在python中,名称不能用于子集设置。在用python/rpy2加载数据帧时,假设列名不会与其他数据一起导入,这是正确的吗?因此,访问它们的最简单方法是将它们作为单独的列表保存和加载,然后用python构造一个dict或类似的dict,将名称映射到列的索引号,这是否正确?然而,这似乎不是很普遍。有没有直接提取列名的方法?在
我使用的R、python、rpy2版本有: R: 3.2.2条 python:3.5.0 卢比2:2.7.8
如果在python中运行
R
代码,全局环境答案将不起作用。但是这个包的创建者/维护者@lgautier值得称赞。在R
中,美元符号$经常使用。这是我学到的:不会起作用,以及它的等效物
^{pr2}$也不会起作用。。。不过,在挖了一番“男人”之后
http://rpy2.readthedocs.io/en/version_2.7.x/vector.html#extracting-r-style
通过代表R函数[和[]的两个delegator rx和rx2授予对R样式提取/子集的访问
这和预期的一样
我在论坛上评论了“男人”的清晰性:
https://bitbucket.org/rpy2/rpy2/issues/436/acessing-dataframe-elements-using-rpy2
我在Win7和ipython上使用rpy2。为了帮助其他人了解格式,下面是一个似乎有效的设置:
近25年来,
R
一直是统计计算的标准,基于一个40岁的S
背景,当时计算效率非常重要。 https://en.wikipedia.org/wiki/R_(programming_language)再次感谢@lgautier让R在Python中更容易访问
当执行以下操作时,您将把
Database02.Rda
的任何对象加载到R的“全局环境”中。在
^{pr2}$robjects.globalenv
是一个Environement。您可以通过以下方式列出其内容:现在我了解到您的一个对象名为
df
。您可以通过以下方式访问它:如果
df
是一个列表或数据框,则可以使用rx2
(这里又是the doc is your friend)。要获得名为REGION
的文件,请执行以下操作:要列出列表或数据框中的所有命名元素,请执行以下操作:
相关问题 更多 >
编程相关推荐