问题描述
下面有一个小的R数据框,其中包含2006年至2008年在日本和墨西哥制造的汽车。我需要计算每年在日本和墨西哥制造的汽车的平均发动机寿命之间的比率。我正在使用dplyr,到目前为止,我已经能够按年份和地点分组。
但是我被困在这一部分。知道如何计算日本和墨西哥每年制造的汽车的平均发动机寿命之间的比率吗?
这是我使用的代码:
cars_df %>%
group_by(year_built,place_built) %>%
summarise(car,year_built,place_built,avg_life_exp = mean(engine_life_expectancy))
解决方法
创建“ engine_life_expectancy”后,执行mutate
。默认情况下,summarise
会删除最后一个分组列。因此,现在,它按'year_built'分组,因此我们可以将'avg_life_exp'的first
元素除以last
或第二个
library(dplyr)
cars_df %>%
group_by(car,year_built,place_built) %>%
summarise(avg_life_exp = mean(engine_life_expectancy)) %>%
mutate(ratio = first(avg_life_exp)/last(avg_life_exp))
注意:与其在summarise
中指定“汽车”(因为新版本中的summarise
可以为每个组返回多行),我们还可以将“汽车”也包括在分组列中