data.frame을 factor별로, 함수 적용해서 요약하기

데이터 프레임에 여러 요인들이 있고, 이들 요인들을 묶어서 몇몇 함수로 정리하고 싶다면?
R의 패키지 중에 정말 훌륭한 plyr 패키지가 있다!

> library(plyr)
> dfx <- data.frame(
  group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
  sex = sample(c("M", "F"), size = 29, replace = TRUE),
  age = runif(n = 29, min = 18, max = 54)
)

데이터는 다음과 같다.
> dfx
   group sex      age
1      A   M        19.61212
2      A   M        26.71510
3      A   M        42.92592
4      A   F         49.54369
5      A   M        44.80178
6      A   M        18.67451
7      A   M        25.66132

group와 sex별로 그룹을 만들어서, age의 평균과 분산을 가진 새로운 data.frame 객체를 만들자.

> dfx.summarized<-ddply(dfx, .(group, sex), summarize,
      mean = round(mean(age), 2),
      sd = round(sd(age), 2)

결과는
> dfx.summarized
  group sex  mean    sd
1     A   F    40.89    12.25
2     A   M    29.73   11.42
3     B   F    34.93    7.84
4     B   M    34.05   12.04
5     C   F    35.61    7.82
6     C   M    21.59   NA


댓글

이 블로그의 인기 게시물

Bradley-Terry Model: paired comparison models

xlwings tutorial - 데이터 계산하여 붙여 넣기

R에서 csv 파일 읽는 법