본문 바로가기

R programming

[R:04] 기초문법(함수)

01.aggregate 함수

aggregate: 데이터의 특정 컬럼을 기준으로 통계량을 구해주는 함수 

문법:aggregate(계산될컬럼~기준될컬럼, 데이터 , 함수) 

> aggregate(Sales~Year,Fruits,sum) <-- 년도 별로 Sales 된 수량을 Fruits라는 data셋에서 sum 한 결과
 Year Sales
1 2008 279
2 2009 298
3 2010 268

> aggregate(Sales~Fruit,Fruits,sum) <- Fruit 별로 Sales 된 수량을 data셋에서 종류별로 sum 한 결과(Sales를 구해라 Fruit별로)
 Fruit Sales
1 Apples 298
2 Bananas 260
3 Oranges 287

> aggregate(Sales~Fruit,Fruits,max) <-- Fruit별로 가장 맋이 Sales 된 수량
 Fruit Sales
1 Apples 111
2 Bananas 94
3 Oranges 98

> aggregate(Sales~Fruit+Year,Fruits,max) <-- '+ 추가조건' 형태로 조건을 추가
 Fruit Year Sales
1 Apples 2008 98
2 Bananas 2008 85
3 Oranges 2008 96
4 Apples 2009 111
5 Bananas 2009 94
6 Oranges 2009 93
7 Apples 2010 89
8 Bananas 2010 81
9 Oranges 2010 98



02.apply( )계열함수


  1)lapply: list로 return (key/value이용)


  2)sapply: 벡터.matrix로 return (데이터형이 같아야함)






03.plyr( )패키지
plyr: apply 함수를 확장한 것

ply( ) 라는 함수 앞에 두 글자를 적어 주게 되는데 첫 번째 글자는 입력될
데이터 유형이고 두 번째 글자는 출력될 데이터 유형이다

            Data frame      List      Array

Dataframe   ddply()        ldply( )   adply( )
List        dlply( )       llply( )   alply()
Array       daply( )       laply( )   aaply( )

*d:data frame
 a:array (matrix포함)
 l:list
-------------------------------------------------

ex)ddply를 예로 들어보겠습니다

> fruits
 year name qty price
1 2000 apple 6 6000 
2 2000 banana 2 1000
3 2000 peach 7 3500
4 2000 berry 9 900
5 2001 apple 10 10000
6 2001 banana 7 3500 
7 2001 peach 3 1500 
8 2001 berry 15 1500
9 2002 apple 13 13000
10 2002 banana 10 5000 
11 2002 peach 5 2500 
12 2002 berry 11 1100

ddply(data,기준컬럼,적용함수나 결과들)

> ddply(fruits,'name„ , summarise , sum_qty=sum(qty), + sum_price=sum(price))

  name sum_qty sum_price 
1 apple 29 29000 
2 banana 19 9500 
3 berry 35 3500 
4 peach 15 7500

 

라는 결과값이 나온다