【问题标题】:How to specify "if two variables are missing"?如何指定“如果缺少两个变量”?
【发布时间】:2018-05-18 17:24:49
【问题描述】:

在数据集“df”中,如果缺少任何变量或 check=0,我想将行标记为“坏”。

df <- data.frame(col1 = c(10, 11, NA, NA, 13),
                 col2 = c(9, NA, NA, 7, 6), check = c(1,0,1,0,0))

if (is.na(df$col1)|is.na(df$col2)|(df$check == 0)){

  df$flag = "bad"

  }else{

  df$flag == "good"
}

代码不起作用,警告信息是:

警告信息:在 if (is.na(df$col1) | is.na(df$col2) | (df$check == 0)) { : 条件长度 > 1 并且只有第一个元素会 被使用

【问题讨论】:

    标签: r if-statement missing-data


    【解决方案1】:

    我们可以通过rowSums 做到这一点

    df$flag <- ('Good', 'Bad')[(rowSums(is.na(df[1:2])) > 0 | df$check == 0) +1]
    

    或使用ifelse

    df$flag <- with(df, ifelse(is.na(col1)|is.na(col2)|check == 0, "bad", "good"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 2020-01-23
      • 1970-01-01
      • 2020-10-02
      相关资源
      最近更新 更多