【发布时间】:2017-02-13 05:42:56
【问题描述】:
如果我有一个向量,例如
vec <- c(3,4,5,NA)
我可以使用以下代码将 NA 替换为向量中其他值的中值:
vec[which(is.na(vec))] <- median(vec, na.rm = T)
但是,如果我有一个包含 NA 的矩阵,则在矩阵的所有列上应用相同的代码不会给我返回一个矩阵,只是返回每个矩阵列的中值。
mat <- matrix(c(1,NA,3,5,6,7,NA,3,4,NA,2,8), ncol = 3)
apply(mat, 2, function(x) x[which(is.na(x))] <- median(x, na.rm=T) )
#[1] 3 6 4
如何将 NA 替换为列中位数的矩阵?这个问题类似:Replace NA values by row means 但我无法根据我的情况调整任何解决方案。
【问题讨论】: