我有一个R语言数据集,记录了不同班级学生每周的零用钱,格式如下:
Year ID Class Allowance
2013 123 Freshman 100
2013 234 Freshman 110
2013 345 Sophomore 150
2013 456 Sophomore 200
2013 567 Junior 250
2014 678 Junior 100
2014 789 Junior 230
2014 890 Freshman 110
2014 891 Freshman 250
2014 892 Sophomore 220
如何按组(年/班级)汇总结果以获取总和和%(按组)?使用ddply
很容易获得总和,但无法正确获取按组的%。
sum
的计算方法如下:
summary <- ddply(my_data, .(Year, Class), summarize, Sum_Allow=sum(Allowance))
但是它无法处理按组百分比的部分:
summary <- ddply(my_data, .(Year, Class), summarize, Sum_Allow=sum(Allowance),
Allow_Pct=Allowance/sum(Allowance))
理想的结果应该像这样:
Year Class Sum_Allow Allow_Pct
2013 Freshman 210 26%
2013 Junior 250 31%
2013 Sophomore 350 43%
2014 Freshman 360 40%
2014 Junior 330 36%
2014 Sophomore 220 24%
我尝试使用plyr包中的ddply函数,但请让我知道其他可能适用的方法。
Sum_allow
和allow_pct
进行操作并查看结果。您可以使用head或tail获取每个百分比的第一行或最后一行。 - rawr