我的代码有问题,它不断重复返回此错误代码 . 肯定会感谢你的帮助!
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] <30){:缺失值需要TRUE / FALSE时出错
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)) {