test_that("rbind.ddf_col() and rbind.tbl_ddf() work", {
tbl_ddf1 <- dibble(
x = 1:12,
y = 13:24,
.dim_names = list(axis1 = 1:4, axis2 = 1:3)
)
tbl_ddf2 <- dibble(
x = 1:12,
y = 13:24,
.dim_names = list(axis1 = 5:8, axis2 = 4:6)
)
expect_error(rbind(tbl_ddf1, tbl_ddf1))
tbl_ddf3 <- broadcast(
rbind(tbl_ddf1, tbl_ddf2),
dim_names = c("axis1", "axis2")
)
expect_equal(
dimnames(tbl_ddf3)[["axis1"]],
vec_c(dimnames(tbl_ddf1)[["axis1"]], dimnames(tbl_ddf2)[["axis1"]])
)
expect_equal(
tbl_ddf3 |>
filter(
axis1 %in% dimnames(tbl_ddf2)[["axis1"]],
axis2 %in% dimnames(tbl_ddf2)[["axis2"]]
),
tbl_ddf2
)
ddf_col1 <- tbl_ddf1[[1]]
ddf_col2 <- tbl_ddf2[[1]]
expect_error(rbind(ddf_col1, ddf_col1))
ddf_col3 <- broadcast(
rbind(ddf_col1, ddf_col2),
dim_names = c("axis1", "axis2")
)
expect_equal(
dimnames(ddf_col3)[["axis1"]],
vec_c(dimnames(ddf_col1)[["axis1"]], dimnames(ddf_col2)[["axis1"]])
)
expect_equal(
ddf_col3 |>
filter(
axis1 %in% dimnames(ddf_col2)[["axis1"]],
axis2 %in% dimnames(ddf_col2)[["axis2"]]
),
ddf_col2
)
# works when the number of key rows is 1 (#23)
data_1 <- tidyr::expand_grid(key = tibble::tibble(col_1 = 1, col_2 = 1)) |>
tibble::add_column(value = 1) |>
dibble_by("key")
data_2 <- tidyr::expand_grid(
key = tibble::tibble(col_1 = 2:3, col_2 = 2:3)
) |>
tibble::add_column(value = 2) |>
dibble_by("key")
data_3 <- tidyr::expand_grid(key = tibble::tibble(col_1 = 2, col_2 = 2)) |>
tibble::add_column(value = 2) |>
dibble_by("key")
data_4 <- tidyr::expand_grid(
key = tibble::tibble(col_1 = 2, col_2 = 2),
key_2 = tibble::tibble(col_1 = 2)
) |>
tibble::add_column(value = 2) |>
dibble_by("key", "key_2")
expect_no_error(broadcast(rbind(data_1, data_2), "key"))
expect_no_error(broadcast(rbind(data_1, data_3), "key"))
expect_no_error(broadcast(rbind(data_1, data_4), c("key", "key_2")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.