我正试图通过Jupyter在Python上运行R mice包。 我正在与许多错误和技术问题作斗争。 让我们使用Iris数据集并插入一些na:
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
data1 = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
data1.iloc[1,1] = np.nan
data1.iloc[4,4] = np.nan
data1.iloc[149,2] = np.nan
在R中,我将运行以下脚本:
library(mice)
md.pattern(data1)
imputed_df = mice(data1, m=3)
df = complete(imputed_df,2)
这里有一个问题,在Python中我尝试运行以下脚本:
from rpy2.robjects import pandas2ri
pandas2ri.activate()
from rpy2.robjects.packages import importr
Mice = importr('mice')
pattern = robjects.r("md.pattern")
Mice.complete(Mice.mice(pattern(data1), m=3),2)
我得到两种类型的错误:
关于完整函数:
AttributeError:模块“鼠标”没有属性“完成”
关于小鼠的功能:
TypeError:“NULLType”对象不可编辑
底线是,您建议如何在Python上运行R鼠标?
1)这可能是因为
complete
函数不是来自mice
库,而是来自tidyr
。只需打印即可在R中检查:其中显示了它来自的名称空间:
我很好奇为什么它不能像在R中一样以rpy2的方式重新导出(这里@lgautier的回答会有所帮助)
2)我不能复制;以下工作符合我的预期:
这对我很有用:
相关问题 更多 >
编程相关推荐