Nothing
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
library(dplyr, warn.conflicts = FALSE)
library(stringr)
skip_if_not_available("acero")
tbl <- example_data
test_that("Empty select returns no columns", {
compare_dplyr_binding(
.input |> select() |> collect(),
tbl
)
})
test_that("Empty select still includes the group_by columns", {
expect_message(
compare_dplyr_binding(
.input |> group_by(chr) |> select() |> collect(),
tbl
),
"Adding missing grouping variables"
)
})
test_that("Missing grouping columns are added to the beginning of the list", {
expect_message(
compare_dplyr_binding(
.input |> group_by(chr) |> select(int) |> collect(),
tbl
),
"Adding missing grouping variables"
)
})
test_that("select/rename/rename_with", {
compare_dplyr_binding(
.input |>
select(string = chr, int) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename(string = chr) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename(strng = chr) |>
rename(other = strng) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename_with(
~ paste0(.x, "_suffix"),
.cols = c("int", "chr")
) |>
collect(),
tbl
)
})
test_that("select/rename/rename_with using selection helpers", {
compare_dplyr_binding(
.input |>
select(everything()) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
select(any_of(c("int", "not_a_column", "lgl"))) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
select(starts_with("d")) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
select(where(is.numeric)) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename_with(toupper) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename_with(toupper, .cols = c()) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
rename_with(
~ paste0(.x, "_suffix"),
.cols = starts_with("d")
) |>
collect(),
tbl
)
})
test_that("filtering with rename", {
compare_dplyr_binding(
.input |>
filter(chr == "b") |>
select(string = chr, int) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
select(string = chr, int) |>
filter(string == "b") |>
collect(),
tbl
)
})
test_that("relocate", {
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
compare_dplyr_binding(
.input |> relocate(f) |> collect(),
df,
)
compare_dplyr_binding(
.input |> relocate(a, .after = c) |> collect(),
df,
)
compare_dplyr_binding(
.input |> relocate(f, .before = b) |> collect(),
df,
)
compare_dplyr_binding(
.input |> relocate(a, .after = last_col()) |> collect(),
df,
)
compare_dplyr_binding(
.input |> relocate(ff = f) |> collect(),
df,
)
})
test_that("relocate with selection helpers", {
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a")
compare_dplyr_binding(
.input |> relocate(any_of(c("a", "e", "i", "o", "u"))) |> collect(),
df
)
compare_dplyr_binding(
.input |> relocate(where(is.character)) |> collect(),
df
)
compare_dplyr_binding(
.input |> relocate(a, b, c, .after = where(is.character)) |> collect(),
df
)
compare_dplyr_binding(
.input |> relocate(d, e, f, .before = where(is.numeric)) |> collect(),
df
)
# works after other dplyr verbs
compare_dplyr_binding(
.input |>
mutate(c = as.character(c)) |>
relocate(d, e, f, .after = where(is.numeric)) |>
collect(),
df
)
})
test_that("multiple select/rename and group_by", {
compare_dplyr_binding(
.input |>
group_by(chr) |>
rename(string = chr, dub = dbl2) |>
rename(chr_actually = string) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
group_by(chr) |>
select(string = chr, dub = dbl2) |>
rename(chr_actually = string) |>
collect(),
tbl
)
compare_dplyr_binding(
.input |>
group_by(chr) |>
rename(string = chr, dub = dbl2) |>
select(chr_actually = string) |>
collect(),
tbl
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.