【发布时间】:2021-11-22 04:57:34
【问题描述】:
我有一个 R 函数,我想将符号向量 (c(a, b)) 转换为 ... 的输入(例如 a, b)。
# create data
set.seed(1)
data <- dplyr::tibble(a = sample(1:5, size = 10, replace = TRUE),
b = sample(1:5, size = 10, replace = TRUE))
函数应该如下所示:
f <- function(category) {
# trying to work out
}
f(category = c(a,b))
并给出结果:
data |>
tidyr::expand(tidyr::nesting(a, b))
困难在于我的函数将输入作为符号向量提供,而rlang::nesting 将输入作为...。
如何从一种格式转换为另一种格式?还是应该使用rlang::nesting以外的其他功能?
【问题讨论】:
-
为什么不能定义
f <- function(...) {category <- do.call(c, list(...))}? -
你能扩展这个想法@Roland吗?我不清楚我们如何将其整合到答案中。
-
我可能可以,但你需要问一个不涉及 tidyverse 的问题。
标签: r lazy-evaluation evaluation rlang tidyeval