例如:我如何生成 10 次將自身除以一半的迭代?
z <- 1
for(i in seq_along(1:10)) {
z[[i]] <- z * (1/2)
}
z
這只為我提供了 0.50 和 0.25 的輸出,我不知道為什么
uj5u.com熱心網友回復:
這里有幾件事:
z是一個向量:所以,如果你這樣做z * (1/2),這將影響整個向量,那么你還必須在這里分配一個索引。- 然后,您需要對
n - 1元素執行 for 回圈。 - 我也建議你使用
[而不是[[在這里。
如果你想要一個 for 回圈,你應該這樣做:
z <- 1
for(i in 1:9) {
z[i 1] <- z[i] * (1/2)
}
# z
# [1] 1.000000000 0.500000000 0.250000000 0.125000000 0.062500000 0.031250000 0.015625000 0.007812500 0.003906250 0.001953125
在 R 中,通常有比 for 回圈更簡單的解決方案。在這種情況下,您可以使用cumprod:
cumprod(c(1, rep(1/2, 9)))
# [1] 1.000000000 0.500000000 0.250000000 0.125000000 0.062500000 0.031250000 0.015625000 0.007812500 0.003906250 0.001953125
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/486706.html
