我在系统中有一个.RData
文件,其中包含三个对象 - 所有R - DataFrame
s。我想将它们作为pandas DataFrames加载到python中。我得到的问题是,对象不是通过rpy
加载的,只是他们的名字:
from rpy2.robjects import r
from rpy2.robjects import pandas2ri
import pandas as pd
file="./normalization.RData"
rf = r.load(file)
rf
<StrVector - Python:0x7fdf1a28cb08 / R:0x4ce82c8>
['df1', 'df2', 'df3']
f1[2]
'annodf'
In [11]:
只加载了名称,或者我不了解如何从RData访问/转换DF。
有人有解决方案吗?
答案 0 :(得分:2)
好的 - 我刚刚意识到对象并没有真正加载到rf
变量中,而是加载到代表R环境的rpy2.rojbects.r
中......这很棘手!
因此以下工作:
import pandas as pd
from rpy2.robjects import r
import rpy2.robjects.pandas2ri as pandas2ri
#load into the env
file="./normalization.RData"
rf=r['load'](file)
rf
<StrVector - Python:0x7fdf1a28cb08 / R:0x4ce82c8>
['df1', 'df2', 'df3']
#acces file in env and convert
df2=pandas2ri.ri2py_dataframe(r['df2'])
type(df2)
pandas.core.frame.DataFrame