如何解决要填充新列的条件语句中的错误?

时间:2019-05-06 05:20:37

标签: r if-statement

我试图根据一组不同列的条件,用五个可能的值(1:5)填充新列,但似乎只能选择最后一个条件。某处有问题,但我似乎找不到。

我已经尝试过ifelse()语句,通用的if .... else if和没有ifelse()但没有任何作用的常规条件。

样本数据:collisons_2016

Sample Data

if (!is.na(collisons_2016$Vehicle_factor_1)==T &&
    !is.na(collisons_2016$Vehicle_factor_2)==T &&
    !is.na(collisons_2016$Vehicle_factor_3)==T &&
    !is.na(collisons_2016$Vehicle_factor_4)==T &&
    !is.na(collisons_2016$Vehicle_factor_5)==T){

  collisons_2016$vehicle_count <- 5

} else if (!is.na(collisons_2016$Vehicle_factor_1)==T&&
           !is.na(collisons_2016$Vehicle_factor_2)==T&&
           !is.na(collisons_2016$Vehicle_factor_3)==T&&
           !is.na(collisons_2016$Vehicle_factor_4)==T&&
           !is.na(collisons_2016$Vehicle_factor_5)==F){

  collisons_2016$vehicle_count <- 4

  } else if (!is.na(collisons_2016$Vehicle_factor_1)==T&&
             !is.na(collisons_2016$Vehicle_factor_2)==T&&
             !is.na(collisons_2016$Vehicle_factor_3)==T&&
             !is.na(collisons_2016$Vehicle_factor_4)==F&&
             !is.na(collisons_2016$Vehicle_factor_5)==F){

    collisons_2016$vehicle_count <-  3

    } else if (!is.na(collisons_2016$Vehicle_factor_1)==T&&
               !is.na(collisons_2016$Vehicle_factor_2)==T&&
               !is.na(collisons_2016$Vehicle_factor_3)==F&&
               !is.na(collisons_2016$Vehicle_factor_4)==F&&
               !is.na(collisons_2016$Vehicle_factor_5)==F){

      collisons_2016$vehicle_count <- 2

    } else if(!is.na(collisons_2016$Vehicle_factor_1)==T&&
              !is.na(collisons_2016$Vehicle_factor_2)==F&&
              !is.na(collisons_2016$Vehicle_factor_3)==F&&
              !is.na(collisons_2016$Vehicle_factor_4)==F&&
              !is.na(collisons_2016$Vehicle_factor_5)==F){

      collisons_2016$vehicle_count <- 1

    } else {

      collisons_2016$vehicle_count <- 0
    }

当前输出:

current output

预期输出:

expected output

在此先感谢您提供的任何帮助!

0 个答案:

没有答案