felix_lee 把过程打印出来你就知道了 b<-c(1,2,NA,NA,NA)<br /> for(i in 1:5){<br /> if(is.na(b[i])){<br /> b=b[-i]<br /> }<br /> cat("step",i,":",b,"\n")<br /> } 你这样剔除NA,逻辑上有问题,因为b重复赋值的时候长度变短了,NA的位置变了</p> 另,你要剔除NA不必写循环 b[!is.na(b)] </p>