- >缺少需要TRUE / FALSE的值

时间:2018-04-01 16:12:57

标签: r

我的代码有问题,它会不断重复返回此错误代码。肯定会感谢你的帮助!

for (i in 1:length(X)) {
  if (Q[i] < 30) {
    Q2[i] = Q[i]
    for (i in i:length(X)) {
      if (Q[i + 1] < 30) {
        Q[i] = 0
        break
      }
    }
  }
  else {
    Q2[i] = Q[i]
  }
}
  

if(Q [i + 1]&lt; 30){:缺少值需要TRUE / FALSE

时出错

1 个答案:

答案 0 :(得分:1)

你将我从1循环到X的长度。

if (Q[i + 1] < 30) {您尝试访问元素i+1。在循环的最后一次迭代中,我将大于X的长度。

为避免这种情况,您应该只循环到length(X) - 1

此外,您的内部循环使用与外部循环相同的索引变量:

for (i in i:length(X)) {

除了做坏事之外,它可能没有按照你的意图行事。您应该将内循环索引更改为j

for (j in i:length(X)) {