【发布时间】:2020-08-15 12:01:02
【问题描述】:
我有一个包含一些缺失值 (NA) 的大型数据集。我希望将这些值替换为列均值,但按类,也就是说,如果类 k 中的项目在列 j 中有缺失值,则该值将被替换为J 列 k 类中的项目。 此外,我只想使用基本 R 或 dplyr 来执行此操作。
与这里已经回答的众所周知的问题相比,类方面带来了一个额外的问题:Replace missing values with column mean。
事实上,我可以将其中的一种解决方案改编成一个笨拙的解决方案来解决我的问题:
NA2mean <- function(x){replace(x, is.na(x), mean(x, na.rm = TRUE))}
DF %>% filter(DF$class=="A") -> A
A <- lapply(A,NA2mean)
(其中数据框为 DF,我假设因子存储在“类”列中。)
然后你会为其他每个班级(例如 B、C、D、E、F)重复此操作。最后,您可以使用 DF
在我的例子中,数据框是按类排序的(即首先是 A,然后是 B,然后是 C,...),我想保持这种方式。
有什么方法可以更有效地做到这一点?
【问题讨论】:
标签: r dplyr multiple-columns factors