【问题标题】:disable function name in across || dplyr || summarise跨 || 禁用函数名dplyr ||总结
【发布时间】:2020-07-13 19:31:02
【问题描述】:
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

【问题讨论】:

    标签: r dplyr across


    【解决方案1】:

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

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

    或者,如果我们仍想使用已命名的 list,则指定 .names,这样可以更好地控制添加前缀或后缀以及通过仅指定 {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. 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多