首页 > 解决方案 > 如何使用 dplyr::summarise “带来另一个变量”

问题描述

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

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

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

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

标签: rdplyrmaxsummarize

解决方案


另一种可能:

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

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

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


推荐阅读