[R] Indexing matrices from the Matrix package with [i, j] seems to be very slow. Are there "faster alternatives"?
Søren Højsgaard
sorenh at math.aau.dk
Sun Jun 24 22:50:53 CEST 2012
Dear all,
Indexing matrices from the Matrix package with [i,j] seems to be very slow. For example:
library(rbenchmark)
library(Matrix)
mm <- matrix(c(1,0,0,0,0,0,0,0), nr=20, nc=20)
MM <- as(mm, "Matrix")
lookup <- function(mat){
for (i in 1:nrow(mat)){
for (j in 1:ncol(mat)){
mat[i,j]
}
}
}
benchmark(lookup(mm), lookup(MM), columns=c("test", "replications", "elapsed", "relative"), replications=50)
test replications elapsed relative
1 lookup(mm) 50 0.01 1
2 lookup(MM) 50 8.77 877
I would have expected a small overhead when indexing a matrix from the Matrix package, but this result is really surprising...
Does anybody know if there are faster alternatives to [i,j] ?
Best regards
Søren
More information about the R-help
mailing list