From 00019a57699e4b2744d60cfe3fc6845d804f7267 Mon Sep 17 00:00:00 2001 From: Ben Drucker Date: Mon, 22 Jul 2024 16:10:41 -0500 Subject: [PATCH] Added extra algorithms to `rrollup` --- R/rollup.R | 8 ++++---- man/rrollup.Rd | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/R/rollup.R b/R/rollup.R index cc43f3f..8be0257 100644 --- a/R/rollup.R +++ b/R/rollup.R @@ -19,6 +19,7 @@ #' @importFrom Biobase exprs fData #' @importFrom outliers grubbs.test outlier #' @importFrom stats rnorm aggregate +#' @importFrom rlang as_function #' @export rrollup #' #' @examples @@ -29,7 +30,7 @@ rrollup <- function(msnset, rollBy, rollFun, - algorithm = c("reference", "sum"), + algorithm = c("reference", "sum", "median", "mean", "min", "max"), verbose=TRUE){ algorithm <- match.arg(algorithm) @@ -46,13 +47,12 @@ rrollup <- function(msnset, rollBy, rollFun, } exprs.new <- do.call(rbind, summarisedFeatures) rownames(exprs.new) <- unique_rollBy - } - if(algorithm == "sum"){ + } else { temp <- data.frame(rollBy = fData(msnset)[[rollBy]], exprs(msnset), check.names = FALSE) temp[is.na(temp)] <- 0 - temp <- aggregate(. ~ rollBy, temp, sum) + temp <- aggregate(. ~ rollBy, temp, as_function(algorithm)) temp[temp == 0] <- NA exprs.new <- as.matrix(temp[,-1]) rownames(exprs.new) <- temp[,1] diff --git a/man/rrollup.Rd b/man/rrollup.Rd index 47faff3..ceb3c29 100644 --- a/man/rrollup.Rd +++ b/man/rrollup.Rd @@ -8,7 +8,7 @@ rrollup( msnset, rollBy, rollFun, - algorithm = c("reference", "sum"), + algorithm = c("reference", "sum", "median", "mean", "min", "max"), verbose = TRUE ) }