【发布时间】:2017-04-13 19:17:05
【问题描述】:
我想计算一个组中每个变量(总共 20 个)的最大值,我想知道有没有更简单的方法来执行计算,而不是使用 summarise 和group_by 在dplyr?示例数据如下:
Name Year test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 test20
John 2008 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0
John 2008 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0
John 2009 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0
John 2010 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1
John 2010 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1
John 2010 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
John 2011 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0
John 2011 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
John 2012 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0
John 2012 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0
John 2012 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1
John 2013 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0
Mary 2009 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mary 2010 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Mary 2010 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Mary 2011 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1
Mary 2011 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0
Mary 2011 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0
Mary 2011 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Mary 2012 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0
Mary 2012 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
Mary 2013 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Mary 2013 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Jack 2010 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0
Jack 2010 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
Jack 2011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Jack 2011 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
Jack 2011 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Jack 2011 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0
Jack 2012 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0
Jack 2012 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Jack 2013 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Jack 2013 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Jack 2014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Jack 2015 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1
Jack 2015 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1
Jack 2015 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
test1 到 test20 代表不同类型的测试,1 代表参加此考试的人,0 代表他/她不参加。一个人可以尽可能多地参加考试。我想要一个person-year 级别的聚合来证明这个人在那一年是否参加过每项考试。如上所述,是否有任何简单的方法可以计算所有 20 个测试的 person-year 级别中的 max?我正在考虑使用ddply,但仍在纠结是否有更好的方法。
提前致谢!
安妮
【问题讨论】:
标签: r variables group-by dplyr plyr