Skip to content

Commit d46d22a

Browse files
authored
Only use c() when there are >1 unnamed inputs (#1306)
1 parent 6aeaad9 commit d46d22a

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

R/nest.R

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,13 @@ nest <- function(.data, ..., .names_sep = NULL, .key = deprecated()) {
128128

129129
.key <- if (missing(.key)) "data" else as.character(ensym(.key))
130130

131-
cols_fixed_expr <- expr(c(!!!cols_bad))
131+
if (length(cols_bad) == 1L) {
132+
cols_bad <- cols_bad[[1]]
133+
cols_fixed_expr <- expr(!!cols_bad)
134+
} else {
135+
cols_fixed_expr <- expr(c(!!!cols_bad))
136+
}
137+
132138
cols_fixed_label <- as_label(cols_fixed_expr)
133139
cols_fixed <- quos(!!.key := !!cols_fixed_expr)
134140

tests/testthat/_snaps/nest.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,15 @@
4444
out <- nest(df, y)
4545
Warning <warning>
4646
All elements of `...` must be named.
47-
Did you want `data = c(y)`?
47+
Did you want `data = y`?
48+
49+
---
50+
51+
Code
52+
out <- nest(df, -y)
53+
Warning <warning>
54+
All elements of `...` must be named.
55+
Did you want `data = -y`?
4856

4957
# only warn about unnamed inputs (#1175)
5058

@@ -68,7 +76,7 @@
6876
out <- nest(df, y, .key = "y")
6977
Warning <warning>
7078
All elements of `...` must be named.
71-
Did you want `y = c(y)`?
79+
Did you want `y = y`?
7280

7381
# can control output column name when nested
7482

tests/testthat/test-nest.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,12 @@ test_that("unnest keeps list cols", {
311311

312312
test_that("warn about old style interface", {
313313
df <- tibble(x = c(1, 1, 1), y = 1:3)
314+
314315
expect_snapshot(out <- nest(df, y))
315316
expect_named(out, c("x", "data"))
317+
318+
expect_snapshot(out <- nest(df, -y))
319+
expect_named(out, c("y", "data"))
316320
})
317321

318322
test_that("only warn about unnamed inputs (#1175)", {

0 commit comments

Comments
 (0)