如何 "bring along another variable" 与 dplyr::summarise
How to "bring along another variable" with dplyr::summarise
我想在每个条件组合中得到最大值,而且还要带同索引的另一个变量的值。
df <- mtcars %>%
group_by(gear,carb) %>%
summarise(max_cyl = max(cyl))
但是我要如何 "bring along" 每辆车对应的最大 mpg?这似乎是一个基本的东西,但它似乎也没有出现在 dplyr 教程中。
换句话说,我只想 select 那些在每个齿轮 x 碳水化合物条件下具有最大气缸数的汽车,并且知道同一辆车的油耗。
我发现 which.max() 函数适用于此。
df1 <- mtcars %>%
group_by(gear,carb) %>%
summarise(max_cyl = max(cyl),
mpg = mpg[which.max(cyl)])
另一种可能性:
df2 <- (mtcars
%>% group_by(gear,carb)
%>% filter(cyl==max(cyl))
%>% select(cyl,mpg)
)
(如果您想避免出现有关 "Adding missing grouping variables" 的消息,则在最后一行中输入 select(gear,carb,cyl,mpg)
)
如果您想捕获更多变量并且不想继续输入,这种方法会很方便 which.max()
。
我想在每个条件组合中得到最大值,而且还要带同索引的另一个变量的值。
df <- mtcars %>%
group_by(gear,carb) %>%
summarise(max_cyl = max(cyl))
但是我要如何 "bring along" 每辆车对应的最大 mpg?这似乎是一个基本的东西,但它似乎也没有出现在 dplyr 教程中。
换句话说,我只想 select 那些在每个齿轮 x 碳水化合物条件下具有最大气缸数的汽车,并且知道同一辆车的油耗。
我发现 which.max() 函数适用于此。
df1 <- mtcars %>%
group_by(gear,carb) %>%
summarise(max_cyl = max(cyl),
mpg = mpg[which.max(cyl)])
另一种可能性:
df2 <- (mtcars
%>% group_by(gear,carb)
%>% filter(cyl==max(cyl))
%>% select(cyl,mpg)
)
(如果您想避免出现有关 "Adding missing grouping variables" 的消息,则在最后一行中输入 select(gear,carb,cyl,mpg)
)
如果您想捕获更多变量并且不想继续输入,这种方法会很方便 which.max()
。