正如標題所說。我有一個向量,我想對向量中的所有元素求和,除了第 i 個元素。我可以通過for回圈來實作這一點,例如
# vector to iterate over
v1 <- 1:5
# somewhere to store results
v2 <- c()
for (i in seq_along(v1)) {
v2[i] <- sum(v1[-i])
}
# desired output
v2
[1] 14 13 12 11 10
我正在尋找性能提升,是否可以在v2沒有for-loop通過矢量化的情況下實作?
uj5u.com熱心網友回復:
這可以在沒有回圈的情況下使用:
sum(v1) - v1
對于 的所有元素,這將v1提供不包括該元素的所有元素的總和v1。由于它是一種矢量化方法,因此它會比回圈更快。https://www.noamross.net/archives/2014-04-16-vectorization-in-r-why/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/461289.html
