【发布时间】:2010-11-13 11:57:30
【问题描述】:
必须有一种简单的方法来矢量化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])
【问题讨论】:
必须有一种简单的方法来矢量化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])
【问题讨论】:
另一种方法
w = rowsum(z, v)
【讨论】:
您可以使用聚合:
聚合(z, by=list(v), sum)
【讨论】: