Playing with Data/R | Python

for문을 대체할 수 있는 apply 함수

아르센 루팽 2018. 1. 23. 17:46

R은 for문을 사용해서 반복하기보다는 apply를 사용하는 것이 속도 측면에서 좀더 우월한 결과를 보이는 경우가 있습니다. 그래서 일부 분석가들은 R에서 apply함수를 가장 중요한 함수라고 하기도 합니다. 그러기에 apply함수를 토대로 파생된 함수들도 많습니다. 예를 들자면, lapply, sapply, tapply, vapply, mapply 등이 있습니다.

이들 함수에 대해 먼저 기본적 사항을 정리해보겠습니다. 표로 정리하면 다음과 같습니다.


함수명

대상 데이터 타입

 apply

  Matrices, Arrays

 lapply, sapply

  Lists

 tapply

  Ragged arrays as vectors


1. apply 함수

apply함수의 대상이 되는 타입은 행렬 또는 배열입니다. 하지만, data.frame를 인자로 넘겨도 에러없이 동작합니다. 다음의 코드를 살펴보겠습니다.

위 코드를 실행시키면,x의 첫번째 COL1이 숫자임에도 불구하고 문자열로 변경되어 출력, 반환되는 것을 확인할 수 있습니다. 이렇게 되는 이유는 바로 apply가 행렬 또는 배열만을 받아서 처리하도록 되어 있기 떄문입니다.

apply 함수를 아예 처음 보시는 분들을 위해, 코드에 대해 추가 설명을 덧붙이자면 2번째 인자는 함수를 적용할 떄, 행으로 할 것인지 열로 할 것인지를 지정해주는 인자값입니다.


2. lapply와 sapply 함수

(Update 예정)


반응형