From d838091a55ba279a0c0ab1f278e91dafd68d93b1 Mon Sep 17 00:00:00 2001 From: nfrerebeau Date: Mon, 13 Jan 2025 23:33:32 +0100 Subject: [PATCH] Fix condense() for ungrouped matrix --- R/condense.R | 3 ++- inst/tinytest/_snaps/condense.rds | Bin 499 -> 518 bytes inst/tinytest/test_condense.R | 17 +++++++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/R/condense.R b/R/condense.R index dd2bda0..b5ca1da 100644 --- a/R/condense.R +++ b/R/condense.R @@ -10,7 +10,8 @@ setMethod( signature = "CompositionMatrix", definition = function(x, by, verbose = FALSE, ...) { x <- group(x, by = by) - methods::callGeneric(x = x, verbose = verbose, ...) + y <- methods::callGeneric(x = x, verbose = verbose, ...) + ungroup(y) } ) diff --git a/inst/tinytest/_snaps/condense.rds b/inst/tinytest/_snaps/condense.rds index 615f982537a8b5b005a6571368c6e037b433b932..bbfa236aa6d52d4582f92d1f93dff8773eb90e8b 100644 GIT binary patch delta 177 zcmV;i08an&1BL{!UIBkWdL0d|9F43TjjbF_tQ<{gCdvSeUIqq6s4QzQGr1@~IVUqO6)M7Akdv662^2~!E`|!RCuQcBWR}2GaORd4C+C+T z1laQn5(`UHVamDk^7Bwd*!0qi@=FWQoX1&|U#^GjL|AAsI>IR!PB4ZujNt-fxT1R& f;$nzNFhQ=A#F9k4v?8D-K;Az9E4k;J1p@#8%BV^t delta 158 zcmV;P0Ac@z1oH#1UIBlBG@~Po;RIti!x%0whARUDFm`|pr~qqTVs2_N)Fck5AX{N+ zVo^yIl*g5unOu~goRgWC3Kiil$Vp7k1PUb<7ej^ElQQ#5GD~18ICD#jlk>|E0_^z( ziG`)9Fy&l%`FW@!Y> M02ehkzQh6m0DAR5D*ylh diff --git a/inst/tinytest/test_condense.R b/inst/tinytest/test_condense.R index 694b0eb..9a9c082 100644 --- a/inst/tinytest/test_condense.R +++ b/inst/tinytest/test_condense.R @@ -1,12 +1,21 @@ data("slides") -coda <- as_composition(slides, groups = 2) +coda <- as_composition(slides) -## Compositional mean by sample +## Ungrouped +flat <- condense(coda, by = slides$analyst) +expect_false(is_grouped(flat)) +expect_identical(rownames(flat), paste0("A", 1:5)) + +## Compositional mean by group +coda <- group(coda, by = slides$analyst) flat <- condense(coda) -expect_equal_to_reference(as.data.frame(flat), file = "_snaps/condense.rds") +expect_identical(group_names(flat), paste0("A", 1:5)) ## Override groups -flat <- condense(coda, by = slides$analyst) +flat <- condense(coda, by = slides$slide) +expect_identical(rownames(flat), c("A", "B", "C", "D", "E")) +expect_identical(group_names(flat), rep(paste0("A", 1:5, collapse = ":"), 5)) +expect_equal_to_reference(as.data.frame(flat), file = "_snaps/condense.rds") ## With zeros X1 <- data.frame(