一些 R datasets可以是loaded into a Pandas DataFrame or Panel很容易:
import pandas.rpy.common as com
infert = com.load_data('infert')
print(infert.head())
只要 R 数据集的维度 <= 3,这似乎就可以工作。更高维度的数据集会打印一条错误消息:
In [67]: com.load_data('Titanic')
Cannot handle dim=4
此错误消息源自 rpy/common.py _convert_array
函数。
当然,Pandas 不能直接将 4 维矩阵塞进 DataFrame 或 Panel 中是有道理的,但是是否有一些解决方法可以将 Titanic
之类的数据集加载到 DataFrame 中(也许使用分层索引)?
最佳答案
使用@joran 非常有用的建议,在安装了 reshape
包之后
% sudo R
R> install.packages('reshape')
我设法将 Titanic
数据集加载到 Pandas DataFrame 中:
import pandas as pd
import pandas.rpy.common as com
import rpy2.robjects as ro
r = ro.r
r('library(reshape)')
df = com.convert_robj(r('melt(Titanic)'))
print(df.head())
打印出来
Class Sex Age Survived value
1 1st Male Child No 0
2 2nd Male Child No 0
3 3rd Male Child No 35
4 Crew Male Child No 0
5 1st Female Child No 0
关于python - 将高维 R 数据集加载到 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19039356/