이것은 Matrix package 대 일반 R
base-matrix 클래스를 사용하여 드문 드문 고밀도 매트릭스의 행 추출을 비교 한 예입니다.Matrix 패키지의 추출 속도는 일반 매트릭스 클래스에 비해 매우 느림
는 밀도 행렬의 경우 속도가 거의 395 배 빠른 기본 클래스 matrix
입니다 : 스파 스 매트릭스를 들어
library(Matrix)
library(microbenchmark)
## row extraction in dense matrices
D1<-matrix(rnorm(2000^2), 2000, 2000)
D2<-Matrix(D1)
> microbenchmark(D1[1,], D2[1,])
Unit: microseconds
expr min lq mean median uq max neval
D1[1, ] 14.437 15.9205 31.72903 31.4835 46.907 75.101 100
D2[1, ] 5730.730 5744.0130 5905.11338 5777.3570 5851.083 7447.118 100
가 다시 matrix
찬성 거의 63 배이다.
## row extraction in sparse matrices
S1<-matrix(1*(runif(2000^2)<0.1), 2000, 2000)
S2<-Matrix(S1, sparse = TRUE)
microbenchmark(S1[1,], S2[1,])
Unit: microseconds
expr min lq mean median uq max neval
S1[1, ] 15.225 16.417 28.15698 17.7655 42.9905 45.692 100
S2[1, ] 1652.362 1670.507 1771.51695 1774.1180 1787.0410 5241.863 100
왜 속도 차이, 그리고 Matrix 패키지에서 추출 속도를하는 방법은 무엇입니까?