我的系统中有一个.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/

10-12 20:17