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

时间:2018-05-23 19:04:50

标签: r while-loop

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

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

我想插入一个新的列status,其值为0/1 - 如果End_week等于1426则为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 个答案:

答案 0 :(得分:1)

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

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