我的代码有问题,它会不断重复返回此错误代码。肯定会感谢你的帮助!
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
时出错
答案 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)) {