Skip to content

Commit 6512cce

Browse files
committed
Updated iscamsummary
1 parent da70a35 commit 6512cce

4 files changed

Lines changed: 97 additions & 9 deletions

File tree

R/iscamsummary.R

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,19 @@
1616
#' @examples
1717
#' set.seed(0)
1818
#' fake_data <- rnorm(30) # simulating some data
19+
#' groups <- sample(c("group1","group2"), 30, TRUE)
1920
#' summary(fake_data)
20-
#' summary(fake_data, sample(c("group1","group2"), 30, TRUE)) # with groups
21+
#' summary(fake_data, explanatory = groups, digits = 2) # with groups
2122
summary <- function(x, explanatory = NULL, digits = 3) {
2223
if (is.null(explanatory)) {
23-
round(.getSummaryStats(x), digits)
24+
output <- .getSummaryStats(x)
2425
} else {
25-
as.data.frame(round(
26-
do.call(rbind, tapply(x, explanatory, .getSummaryStats)),
27-
digits = digits
26+
output <- as.data.frame(do.call(
27+
rbind,
28+
tapply(x, explanatory, .getSummaryStats)
2829
))
2930
}
31+
round(output, digits)
3032
}
3133

3234
.getSummaryStats <- function(x) {
@@ -38,7 +40,7 @@ summary <- function(x, explanatory = NULL, digits = 3) {
3840
n = length(x) - sum(is.na(x)),
3941
Min = min(x, na.rm = TRUE),
4042
Q1 = curried_quantile(0.25),
41-
Median = curried_quantile(0.5),
43+
Median = median(x, na.rm = TRUE),
4244
Q3 = curried_quantile(0.75),
4345
Max = max(x, na.rm = TRUE),
4446
Mean = mean(x, na.rm = TRUE),
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# summary without explanatory works
2+
3+
Code
4+
summary(fake_data)
5+
Output
6+
Missing n Min Q1 Median Q3 Max Mean SD
7+
1 0 30 -1.54 -0.621 -0.031 0.487 2.405 0.022 0.914
8+
9+
---
10+
11+
Code
12+
summary(fake_data, digits = 5)
13+
Output
14+
Missing n Min Q1 Median Q3 Max Mean SD
15+
1 0 30 -1.53995 -0.62109 -0.03144 0.48663 2.40465 0.02195 0.91414
16+
17+
# summary with explanatory works
18+
19+
Code
20+
summary(fake_data, groups)
21+
Output
22+
Missing n Min Q1 Median Q3 Max Mean SD
23+
group1 0 13 -1.238 -0.326 -0.057 0.436 1.263 -0.020 0.655
24+
group2 0 17 -1.540 -0.892 0.133 0.764 2.405 0.054 1.091
25+
26+
---
27+
28+
Code
29+
summary(fake_data, groups)
30+
Output
31+
Missing n Min Q1 Median Q3 Max Mean SD
32+
group1 0 10 -1.540 -0.298 -0.148 0.676 2.405 0.173 1.103
33+
group2 0 10 -1.285 -1.093 -0.089 0.360 1.330 -0.207 0.919
34+
group3 0 10 -0.892 -0.390 0.098 0.472 1.272 0.101 0.736
35+

tests/testthat/test-hypergeometric.R

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/testthat/test-iscamsummary.R

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
set.seed(0)
2+
fake_data <- rnorm(30)
3+
groups <- sample(c("group1", "group2"), 30, TRUE)
4+
raw_summary <- data.frame(
5+
Missing = sum(is.na(fake_data)),
6+
n = length(fake_data),
7+
Min = min(fake_data),
8+
Q1 = quantile(fake_data, probs = 0.25),
9+
Median = median(fake_data),
10+
Q3 = quantile(fake_data, probs = 0.75),
11+
Max = max(fake_data),
12+
Mean = mean(fake_data),
13+
SD = sd(fake_data),
14+
row.names = NULL
15+
)
16+
17+
test_that("summary without explanatory works", {
18+
expect_equal(
19+
summary(fake_data),
20+
raw_summary |> round(3)
21+
)
22+
23+
expect_equal(
24+
summary(fake_data, digits = 5),
25+
raw_summary |> round(5)
26+
)
27+
28+
expect_snapshot(summary(fake_data))
29+
expect_snapshot(summary(fake_data, digits = 5))
30+
})
31+
32+
test_that("summary with explanatory works", {
33+
group1 <- fake_data[groups == "group1"]
34+
group2 <- fake_data[groups == "group2"]
35+
36+
expect_equal(
37+
summary(fake_data, groups),
38+
rbind(summary(group1), summary(group2)) |>
39+
structure(row.names = c("group1", "group2"))
40+
)
41+
expect_snapshot(summary(fake_data, groups))
42+
43+
groups <- sample(c("group1", "group2", "group3"), 30, TRUE)
44+
group1 <- fake_data[groups == "group1"]
45+
group2 <- fake_data[groups == "group2"]
46+
group3 <- fake_data[groups == "group3"]
47+
48+
expect_equal(
49+
summary(fake_data, groups),
50+
rbind(summary(group1), summary(group2), summary(group3)) |>
51+
structure(row.names = c("group1", "group2", "group3"))
52+
)
53+
expect_snapshot(summary(fake_data, groups))
54+
})

0 commit comments

Comments
 (0)