【发布时间】:2011-10-04 19:25:52
【问题描述】:
我正在尝试用相似组的平均值替换我的数据中的一些缺失值。
我的数据如下所示:
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]
}
}
但我的 data.frame 几乎有 50 万行长,而且 for/if 语句非常慢。我想要的是类似的东西
is.na(data.frame$X) <- data.frame$Y
但这会出现大小不匹配的错误。似乎应该有一个命令可以执行此操作,但我在 SO 或 R 帮助列表中找不到它。有什么想法吗?
【问题讨论】:
-
顺便说一句 - 使用
data.frame作为变量名可能不太好,因为在某些情况下会掩盖data.frame()函数。 -
在什么情况下?这不是一个真正的问题。
-
正如@hadley 所说,这不是一个真正的问题。我假设 Y 列不包含所有相同的值......就像他说的那样,我们需要上下文。
标签: r replace missing-data imputation