我在 R 中遇到了一个意想不到的挑战。在我的数据集中,某些列中有 NA。其中一些 NA 应该存在(这些值确实缺失),而其他的应该用 0 替换。我使用了如下代码:
df1 <- data.frame(x = c(1, 2, 3, 4, 5), y = c(10, 10, NA, NA, 12), z = c(9, 9, 9, 9, 9))
for (i in nrow(df1)){
if(df1$x[i] > 3){
df1$y[i] = 0
df1$z[i] = 0
}
}
并得到这个输出
x y z
1 1 10 9
2 2 10 9
3 3 NA 9
4 4 NA 9
5 5 0 0
第 3 行中的 NA 应该保留,但第 4 行中的 NA 应该已替换为 0。此外,第 4 行中的 z 值没有更新。关于正在发生的事情有什么想法吗?
答案 0 :(得分:1)
您使用了 for i in nrow(df1)
,其计算结果为 for i in 5
。我猜您打算使用 for i in 1:nrow(df1)
,它的计算结果为 for i in 1:5
并包含所有行。