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循环了~
啊啊啊,这个坑了我好一会~

上一篇下一篇

猜你喜欢

热点阅读