gpt4 book ai didi

r - 如何将 .names 与 dplyr mutate 和匿名函数一起使用

转载 作者:行者123 更新时间:2023-12-04 03:56:35 24 4
gpt4 key购买 nike

引用 across() ( https://dplyr.tidyverse.org/reference/across.html ) 的文档,您可以使用 .names 参数指定从 dplyr 动词返回的名称。可视化

iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), mean, .names = "mean_{.col}"))
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 3 x 3
#> Species mean_Sepal.Length mean_Sepal.Width
#> <fct> <dbl> <dbl>
#> 1 setosa 5.01 3.43
#> 2 versicolor 5.94 2.77
#> 3 virginica 6.59 2.97
但是,当我使用 purr 风格的匿名函数时,我收到一个错误:
iris %>% 
group_by(Species) %>%
mutate(across(contains(".Width"), ~.x - mean(.x), .names = "residual_{.col}"))

#> Error: Problem with `mutate()` input `..1`.
#> x glue cannot interpolate functions into strings.
#> * object '.col' is a function.
#> i Input `..1` is `across(contains(".Width"), ~.x - mean(.x), .names = "residual_{.col}")`.
#> i The error occured in group 1: Species = "setosa".
#> Run `rlang::last_error()` to see where the error occurred.
删除 .names 参数会删除错误。应该如何在具有匿名函数的 dplyr 动词中使用 across 指定名称?

最佳答案

尝试删除 .col 中的点,所以它将是: .names = "residual_{col}"

关于r - 如何将 .names 与 dplyr mutate 和匿名函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63778208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com