在R中矢量化循环

时间:2010-11-13 11:57:30

标签: r loops

必须有一种简单的方法来对R中的以下循环进行矢量化,但我看不到它。

w <- numeric(10)
z <- rnorm(20)
v <- c(sample(1:10,10),sample(1:10,10)) #Random ordering of c(1:10,1:10)
for(i in 1:10)
    w[i] <- sum(z[v==i])

2 个答案:

答案 0 :(得分:11)

另一种方法

w = rowsum(z, v)

答案 1 :(得分:3)

你可以使用聚合:
    aggregate(z,by = list(v),sum)