【问题标题】:How to "bring along another variable" with dplyr::summarise如何使用 dplyr::summarise “带来另一个变量”
【发布时间】:2023-03-29 16:06:01
【问题描述】:

我想在每个条件组合中得到最大值,同时也带上同一索引的另一个变量的值。

df <- mtcars %>%
  group_by(gear,carb) %>%
  summarise(max_cyl = max(cyl))

但是我该怎么做才能“带上”每辆车的最大 mpg 呢?这似乎是一个基本的东西,但它似乎也没有出现在 dplyr 教程中。

换句话说,我只想选择在每个档位 x 碳水化合物条件下具有最大气缸数的汽车,并且知道同一辆车的油耗。

【问题讨论】:

  • 您能否澄清一下您所说的“带来”是什么意思? summarize 会将数据维度从wt 值的向量减少到单个标量max_cyl。在这种情况下,你想如何捕获mpg 值的向量?
  • 我想要同一行的单个 wt 值,其中 cyl 的最大值是。换句话说,那辆汽车的重量是多少?它的最大气缸数是多少?

标签: r dplyr max summarize


【解决方案1】:

另一种可能性:

df2 <- (mtcars
  %>% group_by(gear,carb) 
  %>% filter(cyl==max(cyl)) 
  %>% select(cyl,mpg)
)

(或select(gear,carb,cyl,mpg) 在最后一行,如果您想避免有关“添加缺少的分组变量”的消息)

如果您想捕获更多变量并且不想继续输入which.max(),这种方法会很方便。

【讨论】:

    【解决方案2】:

    我发现 which.max() 函数适用于此。

    df1 <- mtcars %>%
      group_by(gear,carb) %>%
      summarise(max_cyl = max(cyl),
                mpg = mpg[which.max(cyl)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2014-10-05
      • 2022-11-23
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 2020-01-21
      相关资源
      最近更新 更多