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

R if条件{:参数长度为零时出错,r,while-loop,R,While Loop,我有一个R数据帧df,如下所示: ID End_week 2500076 1223 6801102 1325 6801282 1308 6803252 1426 9882106 1426 9894112 1217 while(i<=length(df$End_week)) { if(df$End_week[i]==1426) { status[i] <- 1 } else { status[i] <- 0 }

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

ID        End_week
2500076   1223
6801102   1325
6801282   1308
6803252   1426
9882106   1426
9894112   1217
while(i<=length(df$End_week)) {
  if(df$End_week[i]==1426) {
    status[i] <- 1
  } else {
    status[i] <- 0
  }
  i=i+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循环,如下所示:

ID        End_week
2500076   1223
6801102   1325
6801282   1308
6803252   1426
9882106   1426
9894112   1217
while(i<=length(df$End_week)) {
  if(df$End_week[i]==1426) {
    status[i] <- 1
  } else {
    status[i] <- 0
  }
  i=i+1
}

我知道以前有人问过这个问题,所以我觉得它们在我的场景中没有帮助。我在周末专栏中检查了所有NA值,但没有。有人能建议一个解决方法吗?

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

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

df$Status或仅将逻辑向量转换为整数,即as.integerEnd_week==1426@CPak-太酷了。我不知道这个把戏。它对我有用!谢谢。这也很有帮助。谢谢!