我正在分析一个数据集,该数据集包含超过45万行,其中约100k行位于我正在查看的列中,{pa1min_
的值为NA
,这是由于无响应和其他随机因素所致。此列以分钟为单位处理锻炼时间。
我认为用平均值或中位数填充NA
值是没有意义的,因为它接近数据的四分之一,并且可能会产生偏差。我想用线性回归来估算缺失的观测值。但是,我收到一条错误消息:
Error: vector memory exhausted (limit reached?)
In addition: There were 50 or more warnings (use warnings() to see the first 50)
这是我的代码:
# imputing using multiple imputation deterministic regression
imp_model <- mice(brfss2013, method="norm.predict", m=1)
# store data
data_imp <- complete(imp_model)
# multiple imputation
imp_model <- mice(brfss2013, m=5)
# building predictive mode
fit <- with(data=imp_model, lm(y ~ x + z))
# combining results
combined <- pool(fit)
这里是数据链接(压缩后) Data
注意:我真的只想为一列填充估算值...数据框中的其他列是字符,整数和因子的混合,其中一些具有两个以上级别。
答案 0 :(得分:2)
与MrFlick所提类似,您的RAM有所短缺。
尝试对1%的数据运行该算法,如果成功,则应尝试签出 bigmemory 软件包以进行磁盘内计算。
我还建议您在没有贝叶斯插补的情况下检查适合您的数据的模型是否真的好,因为尝试拥有完美数据的事实并不仅仅是插补均值会带来更多好处/ median / first / last值。
希望这会有所帮助。