##### bind_rows()
test_that("bind_rows() works with data.tables", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(x = c(1,2,3), y = c(3,4,5))
bind_df <- df1 %>%
bind_rows(df2)
expect_true(is_tidytable(bind_df))
expect_named(bind_df, c("x","y"))
expect_equal(bind_df$x, c(1,2,3,1,2,3))
expect_equal(bind_df$y, c(3,4,5,3,4,5))
})
test_that("bind_rows() works with data.frames", {
df1 <- data.frame(x = c(1,2,3), y = c(3,4,5))
df2 <- data.frame(x = c(1,2,3), y = c(3,4,5))
bind_df <- df1 %>%
bind_rows(df2)
expect_named(bind_df, c("x","y"))
expect_equal(bind_df$x, c(1,2,3,1,2,3))
expect_equal(bind_df$y, c(3,4,5,3,4,5))
})
test_that("bind_rows() works with a list", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(x = c(1,2,3), y = c(3,4,5))
df_list <- list(df1, df2)
bind_df <- bind_rows(df_list)
expect_named(bind_df, c("x","y"))
expect_equal(bind_df$x, c(1,2,3,1,2,3))
expect_equal(bind_df$y, c(3,4,5,3,4,5))
})
test_that("bind_rows() works with list splicing", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(x = c(1,2,3), y = c(3,4,5))
df_list <- list(df1, df2)
bind_df <- bind_rows(!!!df_list)
expect_named(bind_df, c("x","y"))
expect_equal(bind_df$x, c(1,2,3,1,2,3))
expect_equal(bind_df$y, c(3,4,5,3,4,5))
})
test_that("bind_rows() preserves attributes", {
df1 <- tidytable(x = c(1,2,3), y = c(3,4,5))
df2 <- tidytable(x = c(1,2,3), y = c(3,4,5))
attr(df1, "test") <- "foo"
bind_df <- bind_rows(df1, df2)
expect_equal(attr(bind_df, "test"), "foo")
expect_true(is_tidytable(bind_df))
})
##### bind_cols()
test_that("bind_cols() works with data.tables", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(a = c(1,2,3), b = c(3,4,5))
bind_df <- df1 %>%
bind_cols(df2)
expect_named(bind_df, c("x","y","a","b"))
expect_equal(bind_df$x, c(1,2,3))
expect_equal(bind_df$y, c(3,4,5))
expect_equal(bind_df$a, c(1,2,3))
expect_equal(bind_df$b, c(3,4,5))
})
test_that("bind_cols() preserves attributes", {
df1 <- tidytable(x = c(1,2,3), y = c(3,4,5))
df2 <- tidytable(a = c(1,2,3), b = c(3,4,5))
attr(df1, "test") <- "foo"
bind_df <- bind_cols(df1, df2)
expect_equal(attr(bind_df, "test"), "foo")
expect_true(is_tidytable(bind_df))
})
test_that("bind_cols() works with data.frames", {
df1 <- data.frame(x = c(1,2,3), y = c(3,4,5))
df2 <- data.frame(a = c(1,2,3), b = c(3,4,5))
bind_df <- df1 %>%
bind_cols(df2)
expect_true(is_tidytable(bind_df))
expect_named(bind_df, c("x","y","a","b"))
expect_equal(bind_df$x, c(1,2,3))
expect_equal(bind_df$y, c(3,4,5))
expect_equal(bind_df$a, c(1,2,3))
expect_equal(bind_df$b, c(3,4,5))
})
test_that("bind_cols() works with a list", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(a = c(1,2,3), b = c(3,4,5))
df_list <- list(df1, df2)
bind_df <- bind_cols(df_list)
expect_named(bind_df, c("x","y","a","b"))
expect_equal(bind_df$x, c(1,2,3))
expect_equal(bind_df$y, c(3,4,5))
expect_equal(bind_df$a, c(1,2,3))
expect_equal(bind_df$b, c(3,4,5))
})
test_that("bind_cols - works with list splicing", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(a = c(1,2,3), b = c(3,4,5))
df_list <- list(df1, df2)
bind_df <- bind_cols(!!!df_list)
expect_named(bind_df, c("x","y","a","b"))
expect_equal(bind_df$x, c(1,2,3))
expect_equal(bind_df$y, c(3,4,5))
expect_equal(bind_df$a, c(1,2,3))
expect_equal(bind_df$b, c(3,4,5))
})
test_that("bind_cols - duplicate names are fixed", {
df1 <- data.table(x = c(1,2,3), y = c(3,4,5))
df2 <- data.table(x = c(1,2,3), y = c(3,4,5))
df_list <- list(df1, df2)
bind_df <- suppressMessages(bind_cols(df_list))
expect_named(bind_df, c("x...1","y...2","x...3","y...4"))
expect_equal(bind_df$x...1, c(1,2,3))
expect_equal(bind_df$y...2, c(3,4,5))
expect_equal(bind_df$x...3, c(1,2,3))
expect_equal(bind_df$y...4, c(3,4,5))
})
test_that("bind_cols - correctly handles list inputs, (#446)", {
df <- tidytable(a = 1:3, b = 1:3)
out <- map_dfc(df, identity)
expect_true(is_tidytable(out))
expect_equal(out, df)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.