【发布时间】:2023-02-24 15:23:20
【问题描述】:
我想将我在数据帧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
}
}
}
【问题讨论】:
-
简单的方法是
d1[is.na(d1)] <- 13。for的主要问题:使用d1[i,j] <- 13而不是(d1[i,j]) == 13。后者是一个逻辑条件。