1
iris %>%  group_by(Species) %>% summarise(across( .cols = is.numeric, .fns = list(Sum = sum), na.rm = TRUE))

我按物种对行进行分组,然后他们将每列的值添加为数字。

输出如下所示:

summarise() ungrouping output (override with .groups argument)
Species Sepal.Length_Sum Sepal.Width_Sum Petal.Length_Sum Petal.Width_Sum
<fct> <dbl> <dbl> <dbl> <dbl>
setosa 250. 171. 73.1 12.3
versicolor 297. 138. 213 66.3
virginica 329. 149. 278. 101.

我想删除应用跨函数后添加的_Sum 。

R 4.0.0
dplyr 1.0.0

4

1 回答 1

2

list在这种情况下,我们不需要命名

library(dplyr)
iris %>% 
    group_by(Species) %>% 
    summarise(across( .cols = is.numeric, .fns = sum, na.rm = TRUE))

或者,如果我们仍想使用 named list,则指定.nameswhich 将在添加前缀或后缀以及删除任何额外内容方面提供更多控制,只需指定{col}

iris %>%  
    group_by(Species) %>%
    summarise(across( .cols = is.numeric, .fns = list(Sum = sum), 
            .names = "{col}",na.rm = TRUE))
# A tibble: 3 x 5
#  Species    Sepal.Length Sepal.Width Petal.Length Petal.Width
#  <fct>             <dbl>       <dbl>        <dbl>       <dbl>
#1 setosa             250.        171.         73.1        12.3
#2 versicolor         297.        138.        213          66.3
#3 virginica          329.        149.        278.        101. 
于 2020-07-13T19:32:36.417 回答