![](/img/trans.png)
[英]How to use .names with dplyr mutate across and an anonymous function
[英]How to glue a function argument to .names in dplyr's across function?
我正在嘗試使用{col}
和 function arguments 中的一個來命名across
function 的 output
library(tidyverse)
mean_by <- function(data, by, var, prefix = "avg") {
data %>%
group_by({{ by }}) %>%
summarise(across({{ var }}, mean, .names = "{prefix}_{col}"))
}
但是,在對iris %>% mean_by(Species, Sepal.Width)
進行測試時,出現無法找到 object 'prefix' 的錯誤。 .names
中的粘合語法對我來說沒問題,所以我認為這是一個范圍問題? .names
參數只能訪問傳遞給across
內容嗎?
我相信.names
in across
只允許引用{col}
和{fn}
inside across
,但你可以嘗試粘貼你的prefix
:
> library(tidyverse)
> mean_by <- function(data, by, var, prefix = "avg") {
data %>%
group_by({{ by }}) %>%
summarise(across({{ var }}, mean, .names = paste0(prefix,"_{col}")))
}
> iris %>% mean_by(Species, Sepal.Width)
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 2
Species avg_Sepal.Width
<fct> <dbl>
1 setosa 3.43
2 versicolor 2.77
3 virginica 2.97
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.