就像标题上说的。我有一个向量,我想和向量中的所有元素,除了ith元素。我可以通过一个反循环来实现这一点。
# 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呢?
发布于 2022-04-18 01:23:13
这可以在不使用循环的情况下完成:
sum(v1) - v1对于v1的所有元素,这将提供不包括该元素的所有v1之和。因为这是一种矢量化的方法,它将比循环更快。https://www.noamross.net/archives/2014-04-16-vectorization-in-r-why/
https://stackoverflow.com/questions/71899390
复制相似问题