test_that("`reframe()` allows summaries", {
df <- lazy_dt(tibble(g = c(1, 1, 1, 2, 2), x = 1:5))
expect_identical(
collect(reframe(df, x = mean(x))),
tibble(x = 3)
)
expect_identical(
collect(reframe(df, x = mean(x), .by = g)),
tibble(g = c(1, 2), x = c(2, 4.5))
)
})
test_that("`reframe()` allows size 0 results", {
df <- lazy_dt(tibble(g = c(1, 1, 1, 2, 2), x = 1:5))
gdf <- group_by(df, g)
expect_identical(
collect(reframe(df, x = which(x > 5))),
tibble(x = integer())
)
expect_identical(
collect(reframe(df, x = which(x > 5), .by = g)),
tibble(g = double(), x = integer())
)
expect_identical(
collect(reframe(gdf, x = which(x > 5))),
tibble(g = double(), x = integer())
)
})
test_that("`reframe()` allows size >1 results", {
df <- lazy_dt(tibble(g = c(1, 1, 1, 2, 2), x = 1:5))
gdf <- group_by(df, g)
expect_identical(
collect(reframe(df, x = which(x > 2))),
tibble(x = 3:5)
)
expect_identical(
collect(reframe(df, x = which(x > 2), .by = g)),
tibble(g = c(1, 2, 2), x = c(3L, 1L, 2L))
)
expect_identical(
collect(reframe(gdf, x = which(x > 2))),
tibble(g = c(1, 2, 2), x = c(3L, 1L, 2L))
)
})
test_that("`reframe()` ungroups output", {
df <- lazy_dt(tibble(g = c(1, 1, 1, 2, 2), x = 1:5))
gdf <- group_by(df, g, x)
res <- reframe(gdf, row_num = row_number())
expect_true(length(group_vars(res)) == 0)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.