代码之家  ›  专栏  ›  技术社区  ›  Rnovice

if条件:参数长度为零时出错

  •  0
  • Rnovice  · 技术社区  · 6 年前

    我有一个R数据帧 df 如下所示:

    ID        End_week
    2500076   1223
    6801102   1325
    6801282   1308
    6803252   1426
    9882106   1426
    9894112   1217
    

    我想插入一个新列 status 如果“结束周”等于1426,则为0/1,否则为0。最终输出应如下所示:

    ID        End_week   Status
    2500076   1223       0
    6801102   1325       0
    6801282   1308       0
    6803252   1426       1
    9882106   1426       1
    9894112   1217       0
    

    我写了一个while循环,如下所示:

    while(i<=length(df$End_week)) {
      if(df$End_week[i]==1426) {
        status[i] <- 1
      } else {
        status[i] <- 0
      }
      i=i+1
    }
    

    但是,我得到以下错误:

    Error in if (df$End_week[i] == 1426) { : 
      argument is of length zero
    

    我知道以前有人问过这个问题,所以我 referred these answers 但在我的场景中没有发现它们有帮助。我查过了 NA 中的值 End_week 列,没有任何列。有人能建议一条出路吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   icj    6 年前

    我建议研究数据帧子集,因为您错过了R的实质性好处。

    df$Status <- 0
    df$Status[df$End_week == 1426] <- 1