Skip to content

Commit

Permalink
compare_means: works now when the grouping variable levels contain th…
Browse files Browse the repository at this point in the history
…e key words group2. fix #450
  • Loading branch information
kassambara committed Nov 23, 2022
1 parent ec5a73d commit ecaebfb
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 5 deletions.
2 changes: 1 addition & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

## Bug fixes

- `compare_means()`: works now when the grouping variable levels contain the key words group2 or group1 (#450)

# ggpubr 0.5.0

Expand Down
8 changes: 4 additions & 4 deletions R/compare_means.R
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,11 @@ compare_means <- function(formula, data, method = "wilcox.test",

pvalues <- suppressWarnings(do.call(test, test.opts)$p.value) %>%
as.data.frame()
group1 <- group2 <- p <- NULL
pvalues$group2 <- rownames(pvalues)
..group1.. <- ..group2.. <- p <- NULL
pvalues$..group2.. <- rownames(pvalues)
pvalues <- pvalues %>%
tidyr::gather(key = "group1", value = "p", -group2) %>%
dplyr::select(group1, group2, p) %>%
tidyr::gather(key = "..group1..", value = "p", -..group2..) %>%
dplyr::select(group1 = ..group1.., group2 = ..group2.., p) %>%
dplyr::filter(!is.na(p))
pvalues
}
Expand Down
31 changes: 31 additions & 0 deletions tests/testthat/test-compare_means.R
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,34 @@ test_that("compare_means works for kruskal.test", {
expect_equal(results, expected)
})


test_that("compare_means works when grouping variable levels contain group2", {
tibble::tribble(
~val, ~gp, ~by,
923 , 'group4','V1',
1252, 'group4','V1',
1442, 'group4','V1',
1398, 'group2','V1',
1858, 'group2','V1',
1330, 'group2','V1',
2593, 'group2','V1',
23 , 'group4','V2',
252, 'group4','V2',
442, 'group4','V2',
398, 'group2','V2',
858, 'group2','V2',
330, 'group2','V2',
593, 'group2','V2'
) %>% dplyr::mutate(gp=factor(gp, levels = c('group2','group4'))) -> dat

results <- compare_means(val ~ gp, data = dat, group.by = 'by', paired = F)
results <- results %>%
dplyr::select(.y., group1, group2, p.format, p.signif, method)
expected <- tibble::tribble(
~.y., ~group1, ~group2, ~p.format, ~p.signif, ~method,
"val", "group2", "group4", "0.23", "ns", "Wilcoxon",
"val", "group2", "group4", "0.23", "ns", "Wilcoxon"
)
expect_equal(results, expected)
})

0 comments on commit ecaebfb

Please sign in to comment.