1. apply
1) 설명
- 해당 함수는 array의 margine을 정해서 구간적으로 반복하는 기능을 수행할 때 사용한다.
- matrix의 row나 column에서만 특정 연산을 수행할 때 자주 사용한다.
- 일반적인 array형태에서 실행 가능하다.
- 실제 for나 while 문 보다 빠르지는 않지만, 한 줄로 간단하게 사용할 수 있다.
2) 구조
- X: 기능을 적용할 array로 matrix를 포함한다.
- MARGIN: 특정 영역을 설정하는 integer vector
-FUN: 적용하는 기능에 대한 함수
3) 예시 1
- MARGIN은 dimension을 의미한다 1은 row, 2는 column을 의미하는데 위와 같은 x matrix에서 2로해서 apply를 할 경우 해당 column의 평균이 계산 되어 출력된다. 각 column의 평균이 출력된다.
- MARGIN을 1로 할 경우, 각 row의 값들의 평균을 계산하여 출력한다. 1행의 1,3,5,7,9의 평균 5와 2행의 2,4,6,8,10의 평균 6이 반환된다.
- 간단히 row와 column의 합계와 평균을 구하는 것은 다음과 같이 할 수 있다.
Row의 합 = apply(x, 1, sum)
Row의 평균 = apply(x, 1, mean)
Column의 합 = apply(x, 2, sum)
Column의 평균 = apply(x, 2, mean)
4) 예시 2: Quantiles (정규 분포에서 분위를 정해서 해당 분위에 대한 값 계산)
- Quantile로 해당 확률 분포에 있는 데이터 값을 반환한다. 각 column에 대하여 50%에 분포하는 값, 100%에 분포하는 값을 반환하는데, 1열의 경우 1과2사이의 50%인 1.5, 100%인 2가 출력되고 나머지도 같은 형태로 출력된다. 표준 정규분포의 25%, 75%의 확률 분포 값을 반환하는 등에 이용할 수 있다.
5) 예시 3: n-dimension array의 합산
- 3 dimension array를 생성하고 첫 번째는 row의 각 column을 더한 값을 계산하였다. 1번째 row의 1번째 column의 값들을 각각 더해서 1+7+13+19=40과, 2번째 column의 값을 더한 3+9+15+21=48이 순서대로 출력이 된다.
- c(2,1)로 한 경우 column의 row들을 다 더한 값을 계산하였다.
- 위는 3번째 dimension의 row에 대한 값을 합산하는 것으로 각 dimension에서의 row를 더해서 순서대로 출력하였다. 1번째의 1번째 row의 합인 1+3+5=9와 1번째의 2 번째 row인 2+4+6=12가 차례대로 출력되는 것을 볼 수 있다.
'IT | Computer > R' 카테고리의 다른 글
R 언어 통계 프로그래밍_tapply (0) | 2016.08.29 |
---|---|
R 언어 통계 프로그래밍_mapply (0) | 2016.08.28 |
R 언어 통계 프로그래밍_lapply, sapply (0) | 2016.08.21 |
R 언어 통계 프로그래밍: Dates, Times (0) | 2016.08.10 |
R 언어 통계 프로그래밍: Functions 함수 처리 (0) | 2016.04.03 |