【发布时间】:2017-02-16 03:30:32
【问题描述】:
我正在尝试使用 R 和 dplyr 进行一些数据汇总。我的数据框有很多行如下形式:
color year score
<fctr> <int> <int>
对于 N 种不同颜色中的每一种,我都有相同数量的年份行。对于每一个,我都有一个分数。在每种颜色(组)中,我想计算所有分数与某一特定年份的比率。例如:
color year score
<fctr> <int> <int>
1 blue 1980 43
2 blue 1982 13
3 red 1980 330
4 red 1998 89
我想用一个名为“比率”的新列来扩充这个框架,它是每个颜色组(例如蓝色或红色)中每一行的分数与具有固定年份的行的分数的商, 1980. 例如:
color year score ratio
<fctr> <int> <int>
1 blue 1980 43 1
2 blue 1982 13 0.302325581
3 red 1980 330 1
4 red 1998 89 0.269696969
我知道如何使用mutate 和summarize,但我不清楚如何为满足特定条件的给定行(在本例中为 1980 年的行(我们保证每个组中只有一个))。
什么是干净的方法?
【问题讨论】:
-
试试
df1 %>% group_by(color) %>% mutate(ratio = score/score[1]),或者如果每个“颜色”的“年份”值发生变化,那么试试mutate(ratio = score/score[year==1980]) -
@akrun 这很完美。谢谢!
-
没问题,很高兴为您提供帮助。我想会有一些欺骗链接。