<%@include file="includes/setup.md.rsp"%> <%@string colname="colMeans2"%> <%@string rowname="rowMeans2"%> <%@meta title="${colname}() and ${rowname}() benchmarks"%> <%@meta author="Henrik Bengtsson"%> <%@meta date="2017-03-31"%> <%@include file="${header}"%> # <%@meta name="title"%> This report benchmark the performance of <%=colname%>() and <%=rowname%>() against alternative methods. ## Alternative methods * apply() + mean() * .colMeans() and .rowMeans() * colMeans() and rowMeans() <% for (mode in c("integer", "double")) { %> ## Data type "<%=mode%>" ### Data ```r <%=withCapture({ <%@include file="R/random-matrices.R"%> data <- rmatrices(mode = mode) })%> ``` ### Results <% for (dataLabel in names(data)) { %> <% mprintf("%s: %s\n", mode, dataLabel) %> #### <%=dataLabel%> <%=mode%> matrix ```r <%=withCapture({ X <- data[[.dataLabel.]] gc() colStats <- microbenchmark( colMeans2 = colMeans2(X, na.rm = FALSE), .colMeans = .colMeans(X, m = nrow(X), n = ncol(X), na.rm = FALSE), colMeans = colMeans(X, na.rm = FALSE), "apply+mean" = apply(X, MARGIN = 2L, FUN = mean, na.rm = FALSE), unit = "ms" ) X <- t(X) gc() rowStats <- microbenchmark( rowMeans2 = rowMeans2(X, na.rm = FALSE), .rowMeans = .rowMeans(X, m = nrow(X), n = ncol(X), na.rm = FALSE), rowMeans = rowMeans(X, na.rm = FALSE), "apply+mean" = apply(X, MARGIN = 1L, FUN = mean, na.rm = FALSE), unit = "ms" ) })%> ``` <% crBenchmarkResults(colStats, rowStats, tags=c(mode, dataLabel)) %> <% } # for (dataLabel ...) %> <% } # for (mode ...) %> <%@include file="${footer}"%>