This report benchmark the performance of colCummins() and rowCummins() against alternative methods.
> rmatrix <- function(nrow, ncol, mode = c("logical", "double", "integer", "index"), range = c(-100,
+ +100), na_prob = 0) {
+ mode <- match.arg(mode)
+ n <- nrow * ncol
+ if (mode == "logical") {
+ x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+ } else if (mode == "index") {
+ x <- seq_len(n)
+ mode <- "integer"
+ } else {
+ x <- runif(n, min = range[1], max = range[2])
+ }
+ storage.mode(x) <- mode
+ if (na_prob > 0)
+ x[sample(n, size = na_prob * n)] <- NA
+ dim(x) <- c(nrow, ncol)
+ x
+ }
> rmatrices <- function(scale = 10, seed = 1, ...) {
+ set.seed(seed)
+ data <- list()
+ data[[1]] <- rmatrix(nrow = scale * 1, ncol = scale * 1, ...)
+ data[[2]] <- rmatrix(nrow = scale * 10, ncol = scale * 10, ...)
+ data[[3]] <- rmatrix(nrow = scale * 100, ncol = scale * 1, ...)
+ data[[4]] <- t(data[[3]])
+ data[[5]] <- rmatrix(nrow = scale * 10, ncol = scale * 100, ...)
+ data[[6]] <- t(data[[5]])
+ names(data) <- sapply(data, FUN = function(x) paste(dim(x), collapse = "x"))
+ data
+ }
> data <- rmatrices(mode = mode)
> X <- data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5210547 278.3 7916910 422.9 7916910 422.9
Vcells 9852037 75.2 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196857 277.6 7916910 422.9 7916910 422.9
Vcells 9806580 74.9 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.002229 | 0.0026415 | 0.0033156 | 0.0029885 | 0.0037445 | 0.012734 |
| 2 | apply+cummin | 0.043986 | 0.0453740 | 0.0469993 | 0.0457780 | 0.0461720 | 0.128298 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 19.73351 | 17.17736 | 14.17516 | 15.31805 | 12.33062 | 10.07523 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.002361 | 0.0027330 | 0.0034246 | 0.0035675 | 0.0037355 | 0.012926 |
| 2 | apply+cummin | 0.044599 | 0.0454355 | 0.0476552 | 0.0460355 | 0.0475725 | 0.126598 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cummin | 18.88988 | 16.62477 | 13.91535 | 12.90413 | 12.73524 | 9.794059 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+10x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | colCummins | 2.229 | 2.6415 | 3.31561 | 2.9885 | 3.7445 | 12.734 |
| 2 | rowCummins | 2.361 | 2.7330 | 3.42465 | 3.5675 | 3.7355 | 12.926 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 | 1.000000 |
| 2 | rowCummins | 1.059219 | 1.034639 | 1.032887 | 1.193743 | 0.9975965 | 1.015078 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5195419 277.5 7916910 422.9 7916910 422.9
Vcells 9423072 71.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5195413 277.5 7916910 422.9 7916910 422.9
Vcells 9428115 72.0 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.022190 | 0.0238755 | 0.0261154 | 0.0250390 | 0.027731 | 0.043445 |
| 2 | apply+cummin | 0.233114 | 0.2432065 | 0.2734432 | 0.2676035 | 0.292699 | 0.439762 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 10.50536 | 10.18645 | 10.47056 | 10.68747 | 10.55494 | 10.12227 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.016779 | 0.0181550 | 0.0203581 | 0.0191070 | 0.021661 | 0.034899 |
| 2 | apply+cummin | 0.239145 | 0.2477805 | 0.2801754 | 0.2728115 | 0.303913 | 0.489863 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 14.25264 | 13.64806 | 13.76232 | 14.27809 | 14.03042 | 14.03659 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+100x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 16.779 | 18.1550 | 20.35815 | 19.107 | 21.661 | 34.899 |
| 1 | colCummins | 22.190 | 23.8755 | 26.11542 | 25.039 | 27.731 | 43.445 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.322486 | 1.315092 | 1.282799 | 1.310462 | 1.280227 | 1.244878 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196151 277.6 7916910 422.9 7916910 422.9
Vcells 9426583 72.0 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196145 277.6 7916910 422.9 7916910 422.9
Vcells 9431626 72.0 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.024455 | 0.0273985 | 0.0292194 | 0.0295220 | 0.0304175 | 0.046926 |
| 2 | apply+cummin | 0.150360 | 0.1618490 | 0.1762110 | 0.1782605 | 0.1854590 | 0.259739 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 6.148436 | 5.907221 | 6.03061 | 6.038226 | 6.097115 | 5.535076 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.021131 | 0.0233595 | 0.0251970 | 0.024514 | 0.0256150 | 0.045575 |
| 2 | apply+cummin | 0.163532 | 0.1744620 | 0.1886527 | 0.185424 | 0.1908875 | 0.286502 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 7.738962 | 7.468567 | 7.487114 | 7.564004 | 7.452177 | 6.286385 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+1000x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 21.131 | 23.3595 | 25.19698 | 24.514 | 25.6150 | 45.575 |
| 1 | colCummins | 24.455 | 27.3985 | 29.21944 | 29.522 | 30.4175 | 46.926 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.157304 | 1.172906 | 1.159641 | 1.204291 | 1.187488 | 1.029643 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196339 277.6 7916910 422.9 7916910 422.9
Vcells 9427273 72.0 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196333 277.6 7916910 422.9 7916910 422.9
Vcells 9432316 72.0 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.014576 | 0.0157665 | 0.0184986 | 0.0173225 | 0.0202455 | 0.038839 |
| 2 | apply+cummin | 0.881523 | 0.8993215 | 1.0258743 | 0.9633575 | 1.1251470 | 1.471905 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.0000 | 1.00000 | 1.0000 | 1.00000 | 1.00000 | 1.0000 |
| 2 | apply+cummin | 60.4777 | 57.04002 | 55.4568 | 55.61308 | 55.57516 | 37.8976 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.012217 | 0.0132605 | 0.015703 | 0.0146280 | 0.0166105 | 0.035086 |
| 2 | apply+cummin | 0.885263 | 0.9017000 | 1.026040 | 0.9718755 | 1.1172860 | 1.474272 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.0000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 72.46157 | 67.99894 | 65.34032 | 66.4394 | 67.26384 | 42.01881 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+10x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 12.217 | 13.2605 | 15.70301 | 14.6280 | 16.6105 | 35.086 |
| 1 | colCummins | 14.576 | 15.7665 | 18.49862 | 17.3225 | 20.2455 | 38.839 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.193092 | 1.188982 | 1.17803 | 1.184201 | 1.218838 | 1.106966 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196525 277.6 7916910 422.9 7916910 422.9
Vcells 9427771 72.0 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196513 277.6 7916910 422.9 7916910 422.9
Vcells 9477804 72.4 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.162259 | 0.1688415 | 0.2122096 | 0.202050 | 0.2682755 | 0.289558 |
| 2 | apply+cummin | 1.641799 | 1.6738335 | 2.0706028 | 1.824884 | 2.0891775 | 16.677729 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000 |
| 2 | apply+cummin | 10.11838 | 9.913638 | 9.757346 | 9.031844 | 7.787433 | 57.5972 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.106469 | 0.108314 | 0.1232181 | 0.1131175 | 0.129544 | 0.316269 |
| 2 | apply+cummin | 1.632863 | 1.664809 | 2.0879960 | 1.7190735 | 2.039814 | 16.428674 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 15.33651 | 15.37021 | 16.94553 | 15.19724 | 15.74611 | 51.94526 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+100x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 106.469 | 108.3140 | 123.2181 | 113.1175 | 129.5440 | 316.269 |
| 1 | colCummins | 162.259 | 168.8415 | 212.2096 | 202.0500 | 268.2755 | 289.558 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 1 | colCummins | 1.524002 | 1.558815 | 1.722228 | 1.786196 | 2.070922 | 0.9155434 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196718 277.6 7916910 422.9 7916910 422.9
Vcells 9428338 72.0 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196712 277.6 7916910 422.9 7916910 422.9
Vcells 9478381 72.4 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on integer+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.165614 | 0.1745995 | 0.2604943 | 0.186495 | 0.2160475 | 6.618560 |
| 2 | apply+cummin | 0.899980 | 0.9636280 | 1.1328491 | 1.094459 | 1.2090655 | 1.769006 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.0000000 |
| 2 | apply+cummin | 5.434202 | 5.519076 | 4.348844 | 5.86857 | 5.596295 | 0.2672796 |
Table: Benchmarking of rowCummins() and apply+cummin() on integer+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 | rowCummins | 0.114049 | 0.1181895 | 0.1350835 | 0.1325525 | 0.144677 | 0.196824 |
| 2 | apply+cummin | 0.904406 | 0.9332710 | 1.1549733 | 1.0757435 | 1.187177 | 7.402394 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 | 1.0000 |
| 2 | apply+cummin | 7.929977 | 7.896395 | 8.55007 | 8.115603 | 8.20571 | 37.6092 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+1000x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on integer+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 114.049 | 118.1895 | 135.0835 | 132.5525 | 144.6770 | 196.824 |
| 1 | colCummins | 165.614 | 174.5995 | 260.4943 | 186.4950 | 216.0475 | 6618.560 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 1 | colCummins | 1.45213 | 1.477284 | 1.928395 | 1.406952 | 1.493309 | 33.62679 |
Figure: Benchmarking of colCummins() and rowCummins() on integer+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> rmatrix <- function(nrow, ncol, mode = c("logical", "double", "integer", "index"), range = c(-100,
+ +100), na_prob = 0) {
+ mode <- match.arg(mode)
+ n <- nrow * ncol
+ if (mode == "logical") {
+ x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+ } else if (mode == "index") {
+ x <- seq_len(n)
+ mode <- "integer"
+ } else {
+ x <- runif(n, min = range[1], max = range[2])
+ }
+ storage.mode(x) <- mode
+ if (na_prob > 0)
+ x[sample(n, size = na_prob * n)] <- NA
+ dim(x) <- c(nrow, ncol)
+ x
+ }
> rmatrices <- function(scale = 10, seed = 1, ...) {
+ set.seed(seed)
+ data <- list()
+ data[[1]] <- rmatrix(nrow = scale * 1, ncol = scale * 1, ...)
+ data[[2]] <- rmatrix(nrow = scale * 10, ncol = scale * 10, ...)
+ data[[3]] <- rmatrix(nrow = scale * 100, ncol = scale * 1, ...)
+ data[[4]] <- t(data[[3]])
+ data[[5]] <- rmatrix(nrow = scale * 10, ncol = scale * 100, ...)
+ data[[6]] <- t(data[[5]])
+ names(data) <- sapply(data, FUN = function(x) paste(dim(x), collapse = "x"))
+ data
+ }
> data <- rmatrices(mode = mode)
> X <- data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196918 277.6 7916910 422.9 7916910 422.9
Vcells 9544065 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5196903 277.6 7916910 422.9 7916910 422.9
Vcells 9544193 72.9 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.002318 | 0.0026385 | 0.0033606 | 0.003011 | 0.0038760 | 0.013986 |
| 2 | apply+cummin | 0.044473 | 0.0452725 | 0.0468133 | 0.045720 | 0.0460865 | 0.122967 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cummin | 19.18594 | 17.15842 | 13.93017 | 15.18432 | 11.89022 | 8.792149 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.002325 | 0.0027195 | 0.0034384 | 0.0035880 | 0.0037465 | 0.014663 |
| 2 | apply+cummin | 0.044531 | 0.0452120 | 0.0465784 | 0.0455685 | 0.0459740 | 0.120364 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cummin | 19.15312 | 16.62511 | 13.54669 | 12.70025 | 12.27119 | 8.208688 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+10x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | colCummins | 2.318 | 2.6385 | 3.36057 | 3.011 | 3.8760 | 13.986 |
| 2 | rowCummins | 2.325 | 2.7195 | 3.43836 | 3.588 | 3.7465 | 14.663 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 | 1.000000 |
| 2 | rowCummins | 1.00302 | 1.030699 | 1.023148 | 1.191631 | 0.9665893 | 1.048406 |
Figure: Benchmarking of colCummins() and rowCummins() on double+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197093 277.6 7916910 422.9 7916910 422.9
Vcells 9544861 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197087 277.6 7916910 422.9 7916910 422.9
Vcells 9554904 72.9 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.029391 | 0.0310710 | 0.0341979 | 0.0330470 | 0.0361950 | 0.064007 |
| 2 | apply+cummin | 0.224840 | 0.2335375 | 0.2668674 | 0.2627965 | 0.2889055 | 0.419988 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 7.649961 | 7.516253 | 7.803617 | 7.952204 | 7.981917 | 6.561595 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.014422 | 0.016206 | 0.0180022 | 0.0173825 | 0.0189235 | 0.041610 |
| 2 | apply+cummin | 0.239721 | 0.261273 | 0.2848675 | 0.2764945 | 0.3005285 | 0.498169 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 16.6219 | 16.12199 | 15.82403 | 15.90649 | 15.88123 | 11.97234 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+100x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 14.422 | 16.206 | 18.00221 | 17.3825 | 18.9235 | 41.610 |
| 1 | colCummins | 29.391 | 31.071 | 34.19791 | 33.0470 | 36.1950 | 64.007 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 1 | colCummins | 2.037928 | 1.917253 | 1.899651 | 1.901165 | 1.912701 | 1.53826 |
Figure: Benchmarking of colCummins() and rowCummins() on double+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197285 277.6 7916910 422.9 7916910 422.9
Vcells 9545764 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197279 277.6 7916910 422.9 7916910 422.9
Vcells 9555807 73.0 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.033654 | 0.037679 | 0.0399695 | 0.040166 | 0.0417550 | 0.062494 |
| 2 | apply+cummin | 0.148997 | 0.164302 | 0.1798893 | 0.183249 | 0.1904335 | 0.272238 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 4.427319 | 4.360572 | 4.500661 | 4.562291 | 4.560735 | 4.356226 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.016275 | 0.017878 | 0.0200442 | 0.019909 | 0.0212790 | 0.037780 |
| 2 | apply+cummin | 0.150830 | 0.161284 | 0.1777553 | 0.176759 | 0.1907185 | 0.271523 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 9.267588 | 9.021367 | 8.868151 | 8.878346 | 8.962757 | 7.186951 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+1000x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 16.275 | 17.878 | 20.04423 | 19.909 | 21.279 | 37.780 |
| 1 | colCummins | 33.654 | 37.679 | 39.96954 | 40.166 | 41.755 | 62.494 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 2.067834 | 2.107562 | 1.994067 | 2.017479 | 1.962263 | 1.654156 |
Figure: Benchmarking of colCummins() and rowCummins() on double+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197473 277.6 7916910 422.9 7916910 422.9
Vcells 9545889 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197467 277.6 7916910 422.9 7916910 422.9
Vcells 9555932 73.0 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.014831 | 0.0167140 | 0.0199742 | 0.0188755 | 0.0221425 | 0.039420 |
| 2 | apply+cummin | 0.839725 | 0.8873195 | 1.0086288 | 0.9533915 | 1.0935350 | 1.411559 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 56.61958 | 53.0884 | 50.49661 | 50.50947 | 49.38625 | 35.80819 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.010920 | 0.012744 | 0.0153962 | 0.014301 | 0.016793 | 0.033570 |
| 2 | apply+cummin | 0.829891 | 0.922490 | 1.0398857 | 1.035802 | 1.123713 | 1.426725 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.0 |
| 2 | apply+cummin | 75.99734 | 72.38622 | 67.54158 | 72.42868 | 66.91556 | 42.5 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+10x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 10.920 | 12.744 | 15.39623 | 14.3010 | 16.7930 | 33.57 |
| 1 | colCummins | 14.831 | 16.714 | 19.97419 | 18.8755 | 22.1425 | 39.42 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.35815 | 1.311519 | 1.297343 | 1.319873 | 1.318555 | 1.174263 |
Figure: Benchmarking of colCummins() and rowCummins() on double+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197659 277.6 7916910 422.9 7916910 422.9
Vcells 9546944 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197647 277.6 7916910 422.9 7916910 422.9
Vcells 9646977 73.7 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.224364 | 0.258856 | 0.3016059 | 0.288952 | 0.3184805 | 0.565744 |
| 2 | apply+cummin | 1.672009 | 1.921653 | 2.4282131 | 2.094174 | 2.4656300 | 14.610109 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 7.452216 | 7.423637 | 8.050948 | 7.247479 | 7.741855 | 25.82459 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.092501 | 0.1067305 | 0.1283555 | 0.122751 | 0.141771 | 0.223111 |
| 2 | apply+cummin | 1.773200 | 1.9558900 | 2.4272595 | 2.107800 | 2.264207 | 15.407174 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 19.16952 | 18.3255 | 18.91044 | 17.17135 | 15.97088 | 69.05609 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+100x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 92.501 | 106.7305 | 128.3555 | 122.751 | 141.7710 | 223.111 |
| 1 | colCummins | 224.364 | 258.8560 | 301.6059 | 288.952 | 318.4805 | 565.744 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 2.42553 | 2.425324 | 2.349769 | 2.353969 | 2.246443 | 2.535706 |
Figure: Benchmarking of colCummins() and rowCummins() on double+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197852 277.6 7916910 422.9 7916910 422.9
Vcells 9547070 72.9 33191153 253.3 53339345 407.0
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5197846 277.6 7916910 422.9 7916910 422.9
Vcells 9647113 73.7 33191153 253.3 53339345 407.0
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() on double+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 0.250317 | 0.2719995 | 0.3410891 | 0.292485 | 0.3413595 | 0.874692 |
| 2 | apply+cummin | 0.967547 | 1.1052825 | 1.4761206 | 1.207747 | 1.5110725 | 7.415447 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 3.865287 | 4.063546 | 4.327668 | 4.129261 | 4.426631 | 8.477781 |
Table: Benchmarking of rowCummins() and apply+cummin() on double+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 | rowCummins | 0.100188 | 0.1138775 | 0.1206343 | 0.1190735 | 0.124910 | 0.171480 |
| 2 | apply+cummin | 0.991236 | 1.1613455 | 1.3480390 | 1.2159060 | 1.284983 | 6.781842 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 9.89376 | 10.1982 | 11.17459 | 10.21139 | 10.28727 | 39.54888 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+1000x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() on double+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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 100.188 | 113.8775 | 120.6343 | 119.0735 | 124.9100 | 171.480 |
| 1 | colCummins | 250.317 | 271.9995 | 341.0891 | 292.4850 | 341.3595 | 874.692 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 |
| 1 | colCummins | 2.498473 | 2.388527 | 2.827463 | 2.45634 | 2.732844 | 5.10084 |
Figure: Benchmarking of colCummins() and rowCummins() on double+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

R version 4.1.1 Patched (2021-08-10 r80727)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.5 LTS
Matrix products: default
BLAS: /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRblas.so
LAPACK: /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] microbenchmark_1.4-7 matrixStats_0.60.0 ggplot2_3.3.5
[4] knitr_1.33 R.devices_2.17.0 R.utils_2.10.1
[7] R.oo_1.24.0 R.methodsS3_1.8.1-9001 history_0.0.1-9000
loaded via a namespace (and not attached):
[1] Biobase_2.52.0 httr_1.4.2 splines_4.1.1
[4] bit64_4.0.5 network_1.17.1 assertthat_0.2.1
[7] highr_0.9 stats4_4.1.1 blob_1.2.2
[10] GenomeInfoDbData_1.2.6 robustbase_0.93-8 pillar_1.6.2
[13] RSQLite_2.2.8 lattice_0.20-44 glue_1.4.2
[16] digest_0.6.27 XVector_0.32.0 colorspace_2.0-2
[19] Matrix_1.3-4 XML_3.99-0.7 pkgconfig_2.0.3
[22] zlibbioc_1.38.0 genefilter_1.74.0 purrr_0.3.4
[25] ergm_4.1.2 xtable_1.8-4 scales_1.1.1
[28] tibble_3.1.4 annotate_1.70.0 KEGGREST_1.32.0
[31] farver_2.1.0 generics_0.1.0 IRanges_2.26.0
[34] ellipsis_0.3.2 cachem_1.0.6 withr_2.4.2
[37] BiocGenerics_0.38.0 mime_0.11 survival_3.2-13
[40] magrittr_2.0.1 crayon_1.4.1 statnet.common_4.5.0
[43] memoise_2.0.0 laeken_0.5.1 fansi_0.5.0
[46] R.cache_0.15.0 MASS_7.3-54 R.rsp_0.44.0
[49] progressr_0.8.0 tools_4.1.1 lifecycle_1.0.0
[52] S4Vectors_0.30.0 trust_0.1-8 munsell_0.5.0
[55] tabby_0.0.1-9001 AnnotationDbi_1.54.1 Biostrings_2.60.2
[58] compiler_4.1.1 GenomeInfoDb_1.28.1 rlang_0.4.11
[61] grid_4.1.1 RCurl_1.98-1.4 cwhmisc_6.6
[64] rstudioapi_0.13 rappdirs_0.3.3 startup_0.15.0
[67] labeling_0.4.2 bitops_1.0-7 base64enc_0.1-3
[70] boot_1.3-28 gtable_0.3.0 DBI_1.1.1
[73] markdown_1.1 R6_2.5.1 lpSolveAPI_5.5.2.0-17.7
[76] rle_0.9.2 dplyr_1.0.7 fastmap_1.1.0
[79] bit_4.0.4 utf8_1.2.2 parallel_4.1.1
[82] Rcpp_1.0.7 vctrs_0.3.8 png_0.1-7
[85] DEoptimR_1.0-9 tidyselect_1.1.1 xfun_0.25
[88] coda_0.19-4
Total processing time was 24.68 secs.
To reproduce this report, do:
html <- matrixStats:::benchmark('colCummins')
Copyright Henrik Bengtsson. Last updated on 2021-08-25 22:13:30 (+0200 UTC). Powered by RSP.