R语言 -- if 不能识别含有NA的数据
2020-05-13 本文已影响0人
生信摆渡
input <- data_valid[, 2:9]
calculate <- function(x){
if (fit_train$coefficients[[1]] + sum(x * fit_train$coefficients[-1]) < 0.5)
return(0)
else
return(1)
}
> apply(input_1, 1, calculate)
Error in if (fit_train$coefficients[[1]] + sum(x * fit_train$coefficients[-1]) < :
missing value where TRUE/FALSE needed
由于数据中含有NA,if不能讲if()内的计算结果的NA识别为TRUE和FALSE中的任一个,因此会这样报错。
解决办法:
input_1 <- na.omit(input)
只需要使用na.omit去掉含有NA的行或列,就可以愉快地进行if循环了~
啊啊啊,这个坑了我好一会~