2015-09-22 27 views
0

我有一个很大的数据集(1121行x 532列)。
每列代表一份自我报告问卷。
我有几个新手(n = 3015)。
我想用每个列的中位数替换每个NAs。我该如何用列的非缺失条目的中位数来替换大数据集中每一个coumn的NAs?

我该怎么做?

我试图使用na.omit函数从缺失值中清除数据集,但是R放弃了发现NAs的整个行。
这对我来说是个问题,因为在这个操作之后我有一个只有641行的数据集。每列代表比例名称和项目编号(即IUI23 ... IUI是比例名称和23项目编号)。

我需要找到每列的中位数,而不是选择列的标题,然后用每列的中位数替换每个NA。

回答

0

我解决了我的问题,我想与大家分享我的答案。 我使用了“randomForest”包。 我在包名为na.roughfix(object,...)的函数中使用了这个函数,它通过中位数/模式输入所有缺少的值。它返回一个完整的数据矩阵或数据帧。对于数字变量,NAs用列中值替换。对于因子变量,NAs被替换为最常见的级别(随机打破关系)。如果对象不包含NAs,则它将保持不变。 我的数据名称是IUI_data。我只是输入: IUI_data.roughfix < - na.roughfix(IUI_data)。 它工作完美! 有关程序包“randomForest”的更多信息,请点击此处:cran.r-project.org/web/packages/randomForest/randomForest.pdf。

相关问题