我知道使用for
循環並不是R中的最佳做法,因爲它沒有增強的性能。幾乎所有的情況下,都有家庭*apply
的功能,解決了我們的問題。R中的循環 - 需要使用索引,無論如何避免'for'?
但是我面臨的情況是我沒有看到解決方法。
我需要計算連續值的百分比變化:
pv[1] <- 0
for(i in 2:length(x)) {
pv[i] <- (x[i] - x[i-1])/x[i-1]
}
所以,你可以看到,我必須同時使用x[i]
元素,也是x[i-1]
元素。通過使用*apply
函數,我只看到如何使用x[i]
。無論如何,我可以避免for
循環?
好的迴應迪文。我實際上並不知道海報的完成情況,但我在矢量化方面達成了100%的一致。+1 –
非常好的答案!我不知道矢量化的方法是最快的,我認爲'lapply'是。但是在最後一行代碼中,不應該是'x [-1] - x [-length(x)]'? –
@JoãoDaniel:是的,應該的。編輯應用。 –