>X<-data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3179358169.85709258305.05709258305.0Vcells647507549.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177679169.85709258305.05709258305.0Vcells647022149.422343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
0.204771
0.2105605
0.2178498
0.215639
0.2237735
0.277387
2
apply+quantile
0.749683
0.7618105
0.7855426
0.778345
0.8060455
1.075560
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.00000
1.000000
1.000000
1.000000
1.00000
1.000000
2
apply+quantile
3.66108
3.618012
3.605891
3.609482
3.60206
3.877471
Table: Benchmarking of rowQuantiles() and apply+quantile() on 10x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
0.206766
0.2157140
0.2280534
0.224474
0.2295620
0.284570
2
apply+quantile
0.752545
0.7676515
0.8118481
0.801476
0.8111235
1.064999
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
3.639597
3.558654
3.559904
3.570463
3.533353
3.742485
Figure: Benchmarking of colQuantiles() and apply+quantile() on 10x10 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 10x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
204.771
210.5605
217.8498
215.639
223.7735
277.387
2
rowQuantiles
206.766
215.7140
228.0534
224.474
229.5620
284.570
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
rowQuantiles
1.009743
1.024475
1.046838
1.040971
1.025868
1.025895
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x100 matrix
>X<-data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3176235169.75709258305.05709258305.0Vcells608665846.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3176226169.75709258305.05709258305.0Vcells609669646.622343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.667526
1.717488
1.805961
1.755473
1.828817
2.532032
2
apply+quantile
7.725793
7.869764
8.623150
7.984455
8.368327
24.770606
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
4.633087
4.582135
4.774825
4.548321
4.575813
9.782896
Table: Benchmarking of rowQuantiles() and apply+quantile() on 100x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.703577
1.743685
1.818584
1.790552
1.831886
2.262452
2
apply+quantile
7.699512
7.821835
8.453948
7.928989
8.204308
17.136500
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
4.519615
4.485806
4.648644
4.428238
4.478612
7.574304
Figure: Benchmarking of colQuantiles() and apply+quantile() on 100x100 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 100x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.667526
1.717488
1.805961
1.755473
1.828817
2.532032
2
rowQuantiles
1.703577
1.743685
1.818584
1.790552
1.831886
2.262452
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.0000000
2
rowQuantiles
1.021619
1.015253
1.006989
1.019982
1.001678
0.8935322
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x10 matrix
>X<-data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3176965169.75709258305.05709258305.0Vcells609016946.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3176956169.75709258305.05709258305.0Vcells610020746.622343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
0.569989
0.5843265
0.5998415
0.5927725
0.598683
0.944226
2
apply+quantile
1.240029
1.2566525
1.2884913
1.2720650
1.284201
1.816026
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.0000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
2.175531
2.1506
2.148053
2.145958
2.145043
1.923296
Table: Benchmarking of rowQuantiles() and apply+quantile() on 1000x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
0.579148
0.591894
0.6044141
0.6020005
0.607459
0.844155
2
apply+quantile
1.189937
1.215024
1.2409754
1.2348835
1.244353
1.698761
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.000000
1.000000
1.0000
1.000000
1.00000
2
apply+quantile
2.054634
2.052772
2.053187
2.0513
2.048456
2.01238
Figure: Benchmarking of colQuantiles() and apply+quantile() on 1000x10 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 1000x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
569.989
584.3265
599.8415
592.7725
598.683
944.226
2
rowQuantiles
579.148
591.8940
604.4141
602.0005
607.459
844.155
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
rowQuantiles
1.016069
1.012951
1.007623
1.015567
1.014659
0.894018
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
10x1000 matrix
>X<-data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177153169.75709258305.05709258305.0Vcells609088346.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177144169.75709258305.05709258305.0Vcells610092146.622343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
11.71571
12.18752
13.55159
12.58262
13.51043
25.37621
2
apply+quantile
71.34555
73.34382
79.28271
75.91291
86.14064
111.41644
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
6.089731
6.017944
5.850437
6.033157
6.375863
4.390586
Table: Benchmarking of rowQuantiles() and apply+quantile() on 10x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
11.76357
12.18355
15.75459
12.62987
12.87938
266.1704
2
apply+quantile
70.98810
72.54362
77.77507
74.25125
84.08314
110.3797
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.000000
1.000000
1.00000
1.00000
1.0000000
2
apply+quantile
6.034569
5.954227
4.936662
5.87902
6.52851
0.4146957
Figure: Benchmarking of colQuantiles() and apply+quantile() on 10x1000 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 10x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
11.71571
12.18752
13.55159
12.58262
13.51043
25.37621
2
rowQuantiles
11.76357
12.18355
15.75459
12.62987
12.87938
266.17038
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.0000000
1.000000
1.000000
1.0000000
1.00000
2
rowQuantiles
1.004085
0.9996741
1.162564
1.003755
0.9532915
10.48897
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x1000 matrix
>X<-data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177337169.75709258305.05709258305.0Vcells609137946.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177328169.75709258305.05709258305.0Vcells619141747.322343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
15.94949
16.39826
18.22907
17.03291
17.93682
37.48265
2
apply+quantile
78.03791
80.35847
86.19026
81.81766
91.94407
122.29199
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
4.892816
4.900427
4.728176
4.803505
5.125998
3.262629
Table: Benchmarking of rowQuantiles() and apply+quantile() on 100x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
16.22328
16.82461
19.30184
17.49396
19.63542
46.58731
2
apply+quantile
77.73885
80.14350
88.41864
82.86826
94.35297
134.76324
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
4.791808
4.763469
4.580839
4.736965
4.805243
2.892703
Figure: Benchmarking of colQuantiles() and apply+quantile() on 100x1000 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 100x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
15.94949
16.39826
18.22907
17.03291
17.93682
37.48265
2
rowQuantiles
16.22328
16.82461
19.30184
17.49396
19.63542
46.58731
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000
1.000000
1.000000
1.000000
1.000000
2
rowQuantiles
1.017166
1.026
1.058849
1.027068
1.094699
1.242903
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x100 matrix
>X<-data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177529169.75709258305.05709258305.0Vcells609199346.522343563170.556666022432.4>probs<- seq(from=0, to=1, by=0.25)
>colStats<- microbenchmark(colQuantiles= colQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=2L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3177520169.75709258305.05709258305.0Vcells619203147.322343563170.556666022432.4>rowStats<- microbenchmark(rowQuantiles= rowQuantiles(X, probs=probs, na.rm=FALSE), `apply+quantile`= apply(X,
+MARGIN=1L, FUN=quantile, probs=probs, na.rm=FALSE), unit="ms")
Table: Benchmarking of colQuantiles() and apply+quantile() on 1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
4.794218
4.948212
5.233887
4.99597
5.095167
13.85089
2
apply+quantile
11.677002
11.793934
12.435548
11.91788
12.195339
22.84092
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+quantile
2.435643
2.383474
2.375968
2.385499
2.393511
1.649059
Table: Benchmarking of rowQuantiles() and apply+quantile() on 1000x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowQuantiles
5.167341
5.26751
5.53447
5.32830
5.388846
13.79203
2
apply+quantile
11.684250
11.81924
12.29935
11.91869
12.181646
22.81130
expr
min
lq
mean
median
uq
max
1
rowQuantiles
1.000000
1.0000
1.000000
1.000000
1.00000
1.000000
2
apply+quantile
2.261173
2.2438
2.222318
2.236865
2.26053
1.653948
Figure: Benchmarking of colQuantiles() and apply+quantile() on 1000x100 data as well as rowQuantiles() and apply+quantile() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colQuantiles() and rowQuantiles() on 1000x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colQuantiles
4.794218
4.948212
5.233887
4.99597
5.095167
13.85089
2
rowQuantiles
5.167341
5.267510
5.534470
5.32830
5.388846
13.79203
expr
min
lq
mean
median
uq
max
1
colQuantiles
1.000000
1.000000
1.00000
1.00000
1.000000
1.0000000
2
rowQuantiles
1.077828
1.064528
1.05743
1.06652
1.057639
0.9957505
Figure: Benchmarking of colQuantiles() and rowQuantiles() on 1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.