我想用类似的组的平均值替换数据中的一些缺失值。
我的数据长这样:
X Y
1 x y
2 x y
3 NA y
4 x y
我希望它看起来像这样:
X Y
1 x y
2 x y
3 y y
4 x y
我写了这个代码,它运行正常
for(i in 1:nrow(data.frame){
if( is.na(data.frame$X[i]) == TRUE){
data.frame$X[i] <- data.frame$Y[i]
}
}
但我的数据框有将近50万行,使用for/if语句运行速度很慢。我想要的是像下面这样的东西:
is.na(data.frame$X) <- data.frame$Y
但是这会导致一个不匹配的大小错误。似乎应该有一个命令可以做到这一点,但我在SO或R帮助列表中找不到它。有什么想法吗?
data.frame
作为变量名可能不太好,因为它会掩盖data.frame()
函数。 - Ken Williams