exam$math <- ifelse(is.na(exam$math), 55, exam$math)
我想改变这个如下:
exam$math <- ifelse(exam$math == NA, 55, exam$math)
似乎数学上的所有数值都改为NA
!!大声笑
我认为=
用于分配,==
用于比较。
我无法理解上面的错误。请帮忙!
答案 0 :(得分:0)
你不需要ifelse
。您可以使用is.na()
进行子集化进行向量化:
exam <- data.frame(math = c(1,1,2,3,NA,NA))
exam$math[is.na(exam$math)] <- 55
exam
# math
# 1 1
# 2 1
# 3 2
# 4 3
# 5 55
# 6 55
答案 1 :(得分:0)
您也可以使用dplyr::coalesce
替换NA值,就像在SQL中一样:
exam$math <- coalesce(exam$math, 55)