【问题标题】:Across with multiple arguments跨越多个论点
【发布时间】:2021-05-25 07:51:03
【问题描述】:

这可能是一个非常愚蠢的问题,关于应用“跨”功能的多个列和应用于每个列的不同乐趣。例如,下面是来自“iris”数据的示例,其中以“Sepal”开头的列名被平均。如果我连同这个我想取以“花瓣”开头的列的中位数怎么办。如何在同一个摘要中给出两种不同的列类型和乐趣?

iris %>%
  group_by(Species) %>%
  summarise(across(starts_with("Sepal"), mean))

【问题讨论】:

    标签: r across


    【解决方案1】:

    您可以在一个summarise/mutate 中添加多个across 语句:

    library(dplyr)
    
    iris %>%
      group_by(Species) %>%
      summarise(across(starts_with("Sepal"), mean), 
                across(starts_with("Petal"), median))
    
    #  Species    Sepal.Length Sepal.Width Petal.Length Petal.Width
    #* <fct>             <dbl>       <dbl>        <dbl>       <dbl>
    #1 setosa             5.01        3.43         1.5          0.2
    #2 versicolor         5.94        2.77         4.35         1.3
    #3 virginica          6.59        2.97         5.55         2  
    

    【讨论】:

    • 我们可以同时更改输出列的名称吗?
    • 是的,我们可以使用.names 处理这个问题。 across(starts_with("Sepal"), mean, .names = '{col}_mean')
    猜你喜欢
    • 2012-10-10
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2014-04-11
    相关资源
    最近更新 更多