基于其他行的值计算dplyr中组的比率
我试图用R和dplyr做一些数据总结。“我的数据框”中有许多行的格式如下:基于其他行的值计算dplyr中组的比率,r,dplyr,R,Dplyr,我试图用R和dplyr做一些数据总结。“我的数据框”中有许多行的格式如下: color year score <fctr> <int> <int> 颜色年分数 对于N种不同的颜色,我有相同数量的年份行。对于每一个,我都有一个分数。在每个颜色(组)中,我想计算所有分数与某一特定年份的比率。例如: color year score <fctr> <int> &
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这非常有效。非常感谢。没问题,很高兴帮助你。我猜会有一些重复链接。