代码之家  ›  专栏  ›  技术社区  ›  Rob Hyndman

R中循环的矢量化

  •  5
  • Rob Hyndman  · 技术社区  · 15 年前

    必须有一个简单的方法来矢量化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 回复  |  直到 15 年前
        1
  •  11
  •   Ramnath    15 年前

    另一种方法

    w = rowsum(z, v)
    
        2
  •  3
  •   Joshua Ulrich    15 年前

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