2014-04-07 3 views
0

내가 현재 다음과 같습니다 데이터 프레임을 적용하여 ...데이터 프레임을 그룹화하고

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 개 카테고리에서 평균 몇 명의 선수가 있었습니까? 그러나 앨라배마와 다른 학교가 참여하기 위해서는 매년 숫자가 필요합니다. 나는 어떤 형태의 적용 함수가 사용되어야한다고 생각하지만 확실하지 않다.

답변

0

내가 제대로 질문을 이해한다면, 당신은 aggregate (또는 tapply) 또는 가능성도 table에 먼저 cut을 조사하고 있습니다. 여기

내가 진행 할 방법은 다음과 같습니다

cut 결과 열을 추가합니다.

table(mydf[c("AP", "Year", "School")]) 
# , , School = Alabama 
# 
#    Year 
# AP   2012-2013 
# (0,4.1]   2 
# (4.1,9.1]   2 
# (9.1,14.1]   2 

그러나, aggregate의 출력은 아마 훨씬 더 유용한 형식이 될 것입니다 :

mydf$AP <- with(mydf, cut(AveragePoints, c(0, 4.1, 9.1, 14.1))) 

는 여기 table 방법입니다.

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 
관련 문제