在嵌套的tibble中,我想将列表列中的tibble(以下示例中为data
(按字符串向量(vars
(形式的变量分组。
toydata <- tibble::tibble(
vars = list(
list("x"),
list(c("x", "y"))
),
data = list(
tibble::tibble(
x = c(1,1,2,2),
y = c(1,1,1,2)
),
tibble::tibble(
x = c(1,1,2,2),
y = c(1,1,1,2)
)
)
)
这项工作:
purrr::map2(toydata$data,
toydata$vars,
~ dplyr::group_by(.x, !!!rlang::syms(unlist(.y)))
)
但这两项都不起作用:
toydata %>%
dplyr::mutate(
data = purrr::map2(toydata$data,
toydata$vars,
~ dplyr::group_by(.x, !!!rlang::syms(unlist(.y)))
)
)
toydata %>%
dplyr::mutate(
data = purrr::map2(data,
vars,
~ dplyr::group_by(.x, !!!rlang::syms(unlist(.y)))
)
)
我哪里错了?
您可以在group_by
中使用整洁的选择动词。在这里,您可以使用all_of
(或any_of
,具体取决于您想要什么(:
toydata %>%
dplyr::mutate(
data = purrr::map2(
data, vars, ~dplyr::group_by(.x, across(all_of(unlist(.y))))
)
)