我有一堆.RData时间序列文件,并希望直接将它们加载到Python中,而无需先将文件转换为其他扩展名(例如.csv).有关实现这一目标的最佳方法的任何想法?
解决方法:
人们在R-help和R-dev列表中询问这类事情,通常的答案是代码是.RData文件格式的文档.所以任何其他语言的任何其他实现都很难.
我认为唯一合理的方法是安装RPy2并使用R的加载函数,然后转换为适当的python对象. .RData文件可以包含结构化对象以及普通表,因此请注意.
林基:http://rpy.sourceforge.net/rpy2/doc-2.4/html/
Quicky:
>>> import rpy2.robjects as robjects
>>> robjects.r['load'](".RData")
对象现在加载到R工作区.
>>> robjects.r['y']
<FloatVector - Python:0x24c6560 / R:0xf1f0e0>
[0.763684, 0.086314, 0.617097, ..., 0.443631, 0.281865, 0.839317]
这是一个简单的标量,d是一个数据框,我可以通过子集获取列:
>>> robjects.r['d'][0]
<IntVector - Python:0x24c9248 / R:0xbbc6c0>
[ 1, 2, 3, ..., 8, 9, 10]
>>> robjects.r['d'][1]
<FloatVector - Python:0x24c93b0 / R:0xf1f230>
[0.975648, 0.597036, 0.254840, ..., 0.891975, 0.824879, 0.870136]