我對獲取運行 for 回圈回傳結果的代碼的原理很困惑,即x=c(x,i)
> x<-c()
for(i in 1:5){
x=c(x,i)
}
> x
[1] 1 2 3 4 5
正如我對 for 回圈的理解,我認為 x=i 會回傳預期的結果,在這種情況下它會是1 2 3 4 5,但回傳的是 5,只顯示最后一輪回圈的結果,我我想知道為什么x=c(x,i)可以從回圈的每一輪收集結果?x, x in () 和 i 之間的關系是什么?比如它們之間的價值分配程序是怎樣的?希望有人能解釋一下。非常感謝!!!
> x<-c()
for(i in 1:5){
x=i
}
> x
[1] 5
uj5u.com熱心網友回復:
x=c(x,i)正在收集資料,因為該函式c將每個新值連接i到先前存在的向量x。
如果您想更深入地了解回圈內部發生的情況,可以使用print(x),它將x在回圈的每次迭代中顯示 的值。
x<-c()
for(i in 1:5){
x=c(x,i)
print(x)
}
# [1] 1
# [1] 1 2
# [1] 1 2 3
# [1] 1 2 3 4
# [1] 1 2 3 4 5
在每次迭代中,x都會使用新值進行更新i。如果沒有c, 的先前值x將從向量 中洗掉x,如下所示。
x<-c()
for(i in 1:5){
x=i
print(x)
}
# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
正如@user2554330 在評論中指出的那樣,在使用<-代替時更容易考慮它=,因為c(x,i)它被存盤到一個新的 vector 中x。x因此在每次迭代時都會被覆寫,這就是為什么使用x = i.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/402077.html
上一篇:離子“awaitsignInWithEmailAndPassword()”在沒有livereload的iOS模擬器/設備上不起作用
下一篇:改變for回圈的迭代方向
