基于其他行的值计算dplyr中组的比率

基于其他行的值计算dplyr中组的比率,r,dplyr,R,Dplyr,我试图用R和dplyr做一些数据总结。“我的数据框”中有许多行的格式如下: color year score <fctr> <int> <int> 颜色年分数 对于N种不同的颜色,我有相同数量的年份行。对于每一个,我都有一个分数。在每个颜色(组)中,我想计算所有分数与某一特定年份的比率。例如: color year score <fctr> <int> &

我试图用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
   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
颜色年分数
1蓝色1980 43
2蓝色1982 13
3红色1980 330
4红色1998 89
我想用一个名为“ratio”的新列来扩展这个框架,它是每个颜色组(例如蓝色或红色)中每一行的分数与固定年份(1980年)行分数的商。例如:

   color   year       score
   <fctr>  <int>       <int> 
1  blue    1980        43
2  blue    1982         13
3  red     1980         330
4  red     1998         89
   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
颜色年分数比率
1蓝色1980 43 1
2蓝色1982 13 0.302325581
3红色1980 330 1
4红色1998 89 0.2696969
我知道如何使用
mutate
summary
,但我不清楚如何为每个组中满足特定条件的给定行(在本例中,是1980年的行(我们保证只有一行))选择分数值


什么是干净的方法呢?

akrun的评论回答了我的问题:

mutate(ratio = score/score[year==1980]) 

这正是我在这里所需要的。

尝试
df1%>%groupby(color)%>%mutate(比率=分数/分数[1])
或者如果每个“颜色”的“年份”值都发生了变化,那么
就进行变异(比率=分数/分数[year==1980])
@akrun这非常有效。非常感谢。没问题,很高兴帮助你。我猜会有一些重复链接。