test_that("grouped_counts works", {
expect_equal(grouped_counts(iris), data.frame(n = 150))
expect_equal(grouped_counts(iris, by = "Species")$n, c(50, 50, 50))
expect_equal(grouped_counts(iris, w = "Petal.Length"), data.frame(n = 563.7))
expect_equal(grouped_counts(iris, by = "Species", w = "Petal.Length")$n,
c(73.1, 213, 278), tolerance = 1)
})
test_that("grouped_weighted_mean works", {
n <- 100
set.seed(1)
data <- data.frame(x = rnorm(n), w = runif(n), group = factor(sample(1:3, n, TRUE)))
data <- data[order(data$group), ] # .by does not sort
expect_equal(grouped_weighted_mean(data, x = "x")$x,
grouped_stats(data, x = "x")$x)
expect_equal(grouped_weighted_mean(data, x = "x", w = "w")$x,
grouped_stats(data, x = "x", w = "w")$x)
expect_equal(grouped_weighted_mean(data, x = "x", by = "group")$x,
grouped_stats(data, x = "x", by = "group")$x)
expect_equal(grouped_weighted_mean(data, x = "x", w = "w", by = "group")$x,
grouped_stats(data, x = "x", w = "w", by = "group")$x)
})
test_that("grouped_center works", {
data <- data.frame(x = c(1, 1, 2), w = c(2, 2, 1))
res <- c(-1, -1, 2) / 3
resw <- c(-1, -1, 4) / 5
expect_equal(grouped_center(data, x = "x"), res)
expect_equal(grouped_center(data, x = "x", w = "w"), resw)
data2 <- data * 2
data$g <- "A"
data2$g <- "B"
data3 <- rbind(data, data2)
expect_equal(grouped_center(data3, x = "x", by = "g"), c(res, 2 * res))
expect_equal(grouped_center(data3, x = "x", w = "w", by = "g"),
c(resw, 2 * resw))
})
test_that("grouped_stats works", {
data <- data.frame(x = 1:10, w = 1:10, g = rep(1:2, each = 5))
expect_equal(grouped_stats(data, "x"), data.frame(counts_ = 10, x = 5.5))
expect_equal(grouped_stats(data, "x", stats = "variance"),
data.frame(counts_ = 10, x = var(1:10)))
expect_equal(grouped_stats(data, "x", stats = "quartiles")[c("q1", "q3")],
data.frame(q1 = 3.25, q3 = 7.75))
expect_equal(grouped_stats(data, "x", by = "g")$x, c(3, 8))
expect_equal(grouped_stats(data, "x", by = "g", stats = "variance")$x,
c(2.5, 2.5))
expect_equal(grouped_stats(data, "x", by = "g", stats = "quartiles")[["q1"]],
c(2, 7))
expect_equal(grouped_stats(data, "x", w = "w")$x, weighted.mean(data$x, data$w))
expect_equal(grouped_stats(data, "x", w = "w", stats = "variance")$x,
6.875)
expect_equal(grouped_stats(data, "x", w = "w", stats = "quartiles")[c("q1", "q3")],
data.frame(q1 = 5, q3 = 9))
expect_equal(grouped_stats(data, "x", w = "w", by = "g")$x,
c(weighted.mean(data$x[1:5], data$w[1:5]),
weighted.mean(data$x[6:10], data$w[6:10])))
expect_equal(colnames(grouped_stats(data, "x", by = "g", counts_name = "n",
value_name = "median", stats = "quartiles",
q1_name = "p25", q3_name = "p75", )),
c("g", "n", "p25", "median", "p75"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.