我的系统中有一个.RData
文件,其中包含三个对象-所有R- DataFrame
。我想将它们作为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。
有人对此有解决方案吗?
最佳答案
好的-我只是意识到对象并不是真正加载到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
关于python - rpy2将.RData文件中的多个DataFrame加载到 Pandas 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41952111/