# test that various tidyverse functions work as expected
library(dplyr)
test_that("str_trim works as expected", {
d <- " jlkshdf lksd "
expect_identical(stringr::str_trim(d, side = "both"), "jlkshdf lksd")
})
test_that("dplyr::summarise has .groups argument", {
x <- data.frame(a1 = c("a", "a", "a", "b", "b", "b"),
a2 = c(1, 2, 1, 2, 1, 2)) %>%
mutate(b = 1:6)
x.out <- x %>%
group_by(a1, a2) %>%
summarise(b_sum = sum(b), .groups = "drop") %>%
as.data.frame()
df.out <- data.frame(a1 = c("a", "a", "b", "b"), a2 = c(1, 2, 1, 2),
b_sum = as.integer(c(4, 2, 5, 10)))
expect_equal(x.out, df.out)
})
test_that("tidy flow", {
df1 <- data.frame(birth_year = c(33, 112), tst = c("a", "b"), stringsAsFactors = FALSE)
df2 <- data.frame(homeworld = c("Tatooine", "New York"), earth = c(FALSE, TRUE),
stringsAsFactors = FALSE)
tst1 <- starwars %>%
mutate(hi = "a") %>%
left_join(df1, by = "birth_year") %>%
full_join(df2, by = "homeworld") %>%
arrange(name) %>%
filter(between(height, 0, 50)) %>%
select(!!names(starwars)) %>%
slice(0)
expect_equal(tst1, starwars[0, ])
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.