我有一个关于for循环的基本问题但是我无法理解。这是我的代码。
i<-0
z<-numeric(6)
for(i in 1:5){
i<-i+1
z[i]<-i
}
我希望输出为
>z
[1] 1 2 3 4 5 6
但它生成了
>z
[1] 0 2 3 4 5 6
为什么?
答案 0 :(得分:2)
您的循环设置以下值,按迭代细分:
i<-1
i<-2
z[2]<-2
i<-2
i <-3
z[3]<-3
...
...
i<-5
i<-6
z[6]<-6
如您所见,z[1]
永远不会设置,因为您在将i
用作索引之前会增加z[i]<-i
。将循环更改为1
,而不是其他任何内容。另外,如果要设置6
元素,请将循环设置为从5
到6
而不是z<-numeric(6)
for(i in 1:6){
z[i]<-i
}
:
{{1}}