使用for循环和if语句将 Dataframe 中的NA值转换为任意整数

eufgjt7s  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(161)

我想把下面的数据框d1中的NA值转换成一个像13这样的整数值,但是我的for循环和if语句似乎不起作用。如果有人能帮助我,我将不胜感激。

L3 <- LETTERS[1:3]
fac <- sample(L3, 10, replace = TRUE)
d <- data.frame(x = 1, y = 1:10, fac = fac)

d1 <- d
d1$x[1:3] <- NA
d1$y[4:6] <- NA
d1$fac[7:10] <- NA

for (i in 1:nrow(d1)){
  for (j in 1:ncol(d1)){
    if (is.na(d1[i,j]) == TRUE) {
      (d1[i,j]) == 13
    }
  }
}
2uluyalo

2uluyalo1#

可能是打印错误。

L3 <- LETTERS[1:3]
fac <- sample(L3, 10, replace = TRUE)
d <- data.frame(x = 1, y = 1:10, fac = fac)
d1 <- d
d1$x[1:3] <- NA
d1$y[4:6] <- NA
d1$fac[7:10] <- NA

for (i in 1:nrow(d1)){
  for (j in 1:ncol(d1)){
    if (is.na(d1[i,j])) {
      d1[i,j] <-  13
    }
  }
}
    • 结果**
d1
#>     x  y fac
#> 1  13  1   A
#> 2  13  2   B
#> 3  13  3   C
#> 4   1 13   B
#> 5   1 13   A
#> 6   1 13   B
#> 7   1  7  13
#> 8   1  8  13
#> 9   1  9  13
#> 10  1 10  13

创建于2023年2月24日,使用reprex v2.0.2

相关问题