错误:缺少while循环中需要TRUE / FALSE的值

时间:2013-06-22 07:19:55

标签: r while-loop

我正在尝试使用while循环编写程序:

n=50
sum=array(0,n)
sum[1]=0
for(k in 1:n)
{
   sum[k+1]=sum[k]+k
   while((sum[k+1]-sum[k])<10)
   {
      print(sum[k+1])
      k=k+1
   }
}
sample=data.frame(Sum=sum) sample

显示:

Error in while ((sum[k + 1] - sum[k]) < 10) { : 
  missing value where TRUE/FALSE needed

有人能说出这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

在第二次迭代sum[k+1] = NA中,因为它将被评估为:

(sum[2+1]-sum[1])<10其中sum[2+1] = sum[3]NA。因此(sum[k+1]-sum[k])<10不会被评估为 TRUE / FALSE 之一。

Iteration (k) | sum[k+1]-sum[k]
--------------+------------------
      1       | sum[2] - sum[1]   They're both known
      2       | sum[3] - sum[2]   What is sum[3]? (NA)