我需要矩阵的每一列的加权总和。最快的方法来获取矩阵的列的加权总和R
data <- matrix(1:2e7,1e7,2) # warning large number, will eat up >100 megs of memory
weights <- 1:1e7/1e5
system.time(colSums(data*weights))
system.time(apply(data,2,function(x) sum(x*weights)))
all.equal(colSums(data*weights), apply(data,2,function(x) sum(x*weights)))
通常colSums(data*weights)
比应用调用更快。
我经常做这个操作(在一个大矩阵上)。因此寻找最有效实施的建议。理想情况下,如果我们可以将权重传递给colSums(或rowSums),那会非常好。
谢谢,感谢任何见解!
谢谢,有道理。 – Anirban