data(efc)
test_that("data_group attributes", {
x <- data_group(efc, "c172code")
expect_identical(
attributes(x)$groups,
structure(
list(
c172code = c(1, 2, 3, NA),
.rows = list(
c(3L, 14L, 30L, 32L, 36L, 77L, 91L, 99L),
c(
1L, 2L, 4L, 5L, 6L, 7L, 8L, 10L, 11L, 12L, 16L, 17L, 18L,
21L, 22L, 23L, 24L, 25L, 26L, 28L, 29L, 31L, 33L, 34L, 35L,
37L, 38L, 39L, 40L, 42L, 44L, 45L, 46L, 47L, 50L, 51L, 52L,
53L, 54L, 56L, 57L, 59L, 60L, 62L, 65L, 68L, 69L, 71L, 72L,
73L, 76L, 78L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L,
90L, 92L, 93L, 96L, 100L
),
c(
13L, 15L, 19L, 20L, 27L, 41L, 43L, 55L, 58L, 64L, 66L, 67L,
74L, 75L, 79L, 89L
),
c(9L, 48L, 49L, 61L, 63L, 70L, 94L, 95L, 97L, 98L)
)
),
row.names = c(2L, 1L, 4L, 3L), class = "data.frame", .drop = TRUE
)
)
expect_s3_class(x, "grouped_df")
})
test_that("data_group attributes", {
skip_if_not_installed("poorman")
x <- data_group(efc, "c172code")
out <- poorman::summarise(x, mw = mean(c12hour, na.rm = TRUE))
expect_equal(out$mw, c(87.125, 94.046875, 75), tolerance = 1e-3)
})
# select helpers ------------------------------
test_that("data_group regex", {
expect_identical(
attributes(data_group(mtcars, select = "yl", regex = TRUE))$groups[[1]],
sort(unique(mtcars$cyl))
)
})
test_that("data_ungroup works", {
x <- data_group(efc, "c172code")
attr(x, "foo") <- TRUE
ungrouped <- data_ungroup(x)
expect_false(inherits(ungrouped, "grouped_df"))
expect_true(attributes(x)$foo)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.