R 将数据帧分组并使用apply
我现在有一个数据框,看起来像这样R 将数据帧分组并使用apply,r,dataframe,apply,tapply,R,Dataframe,Apply,Tapply,我现在有一个数据框,看起来像这样 Year School AveragePoints 2012-2013 Alabama 2.5 2012-2013 Alabama 5.4 2012-2013 Alabama 10.4 2012-2013 Alabama 1.2 2012-2013 Alabama 9.2 2012-2013 Alabama
Year School AveragePoints
2012-2013 Alabama 2.5
2012-2013 Alabama 5.4
2012-2013 Alabama 10.4
2012-2013 Alabama 1.2
2012-2013 Alabama 9.2
2012-2013 Alabama 7.3
每行代表该队当年的一名球员。因此,第一排意味着2012-2013年阿拉巴马州的一名球员当年的平均得分为2.5分。数据框架比这要长得多,有更多的团队,持续到1997-1998年。我想知道如何找出每所学校每年平均有多少球员在0-4、4.1-9、9.1-14和>14.1之间。换句话说,2012-2013年,阿拉巴马州这4个类别的平均球员人数是多少。但我需要阿拉巴马州和其他相关学校每年的数字。我认为应该使用某种形式的apply函数,但我不确定。如果我正确理解了你的问题,你应该先查看
cut
,然后查看aggregate
(或tapply
),甚至可能查看table
以下是我将如何继续:
添加带有cut
结果的列
mydf$AP <- with(mydf, cut(AveragePoints, c(0, 4.1, 9.1, 14.1)))
但是,aggregate
的输出可能是一种更有用的格式
aggregate(. ~ Year + School + AP, mydf, length)
# Year School AP AveragePoints
# 1 2012-2013 Alabama (0,4.1] 2
# 2 2012-2013 Alabama (4.1,9.1] 2
# 3 2012-2013 Alabama (9.1,14.1] 2
aggregate(. ~ Year + School + AP, mydf, length)
# Year School AP AveragePoints
# 1 2012-2013 Alabama (0,4.1] 2
# 2 2012-2013 Alabama (4.1,9.1] 2
# 3 2012-2013 Alabama (9.1,14.1] 2