计算平均发动机预期寿命之间的比率

问题描述

下面有一个小的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))

example dataframe

解决方法

创建“ 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可以为每个组返回多行),我们还可以将“汽车”也包​​括在分组列中