tapply 함수는 그룹된 데이터를 그룹별로 특정 함수를 처리합니다.
데이터는 R 프로그램에 내장된 데이터를 사용합니다.
> data(npk)
> npk
block N P K yield
1 1 0 1 1 49.5
2 1 1 1 0 62.8
3 1 0 0 0 46.8
4 1 1 0 1 57.0
5 2 1 0 0 59.8
6 2 1 1 1 58.5
7 2 0 0 1 55.5
8 2 0 1 0 56.0
9 3 0 1 0 62.8
10 3 1 1 1 55.8
11 3 1 0 0 69.5
12 3 0 0 1 55.0
13 4 1 0 0 62.0
14 4 1 1 1 48.8
15 4 0 0 1 45.5
16 4 0 1 0 44.2
17 5 1 1 0 52.0
18 5 0 0 0 51.5
19 5 1 0 1 49.8
20 5 0 1 1 48.8
21 6 1 0 1 57.2
22 6 1 1 0 59.0
23 6 0 1 1 53.2
24 6 0 0 0 56.0
그룹별 평균
> tapply(npk$yield, npk$block, mean)
1 2 3 4 5 6
54.025 57.450 60.775 50.125 50.525 56.350
그룹별 표준편차
> tapply(npk$yield, npk$block, sd)
1 2 3 4 5 6
7.269285 2.043689 6.790373 8.150000 1.486327 2.435159
그룹별 정규성 검정
> tapply(npk$yield, npk$block, shapiro.test)
$`1`
Shapiro-Wilk normality test
data: X[[1L]]
W = 0.9456, p-value = 0.689
$`2`
Shapiro-Wilk normality test
data: X[[2L]]
W = 0.907, p-value = 0.4664
$`3`
Shapiro-Wilk normality test
data: X[[3L]]
W = 0.8955, p-value = 0.409
$`4`
Shapiro-Wilk normality test
data: X[[4L]]
W = 0.8199, p-value = 0.143
$`5`
Shapiro-Wilk normality test
data: X[[5L]]
W = 0.9295, p-value = 0.5916
$`6`
Shapiro-Wilk normality test
data: X[[6L]]
W = 0.9848, p-value = 0.9298
그룹별 Plot
par(mfrow=c(3,2))
tapply(npk$yield, npk$block, plot)
'Test Code > R' 카테고리의 다른 글
[R] abline 그리기 (0) | 2014.01.09 |
---|---|
[R] 그룹데이터 만들기 (0) | 2014.01.09 |
[R] 멀티 plot (0) | 2014.01.06 |
[R] 빈 Plot에서 텍스트 쓰기 (0) | 2014.01.04 |
[R] plot을 이미지로 저장 (0) | 2014.01.04 |