IT | Computer/R

R 언어 통계 프로그래밍_apply

바람난후제 2016. 8. 22. 01:33
728x90
반응형

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가 차례대로 출력되는 것을 볼 수 있다.

728x90
반응형