서비스 기획자의 성장기록

[R기초] apply( ) 함수: apply, lapply, sapply 본문

R/R 기초

[R기초] apply( ) 함수: apply, lapply, sapply

Jenny Noh 2023. 10. 5. 18:43

R에서는 반복문으로 for 보다 apply 함수를 더 많이 사용한다.

R에서 주로 다루는 데이터는 벡터, 행렬, 리스트 등의 행과 열 단위의 데이터이기 때문에 동시에 여러 열이나 행을 처리할 수 없는 for문보다 행열 단위의 연산을 할 수 있는 apply 함수가 더 유용하다.

 

1) apply( ) 함수

apply( ) 함수는 행렬의 연산에 사용한다. 

 

기본형태

apply(x, margin, 함수)

x에는 행렬을 넣는다. 

책에서는 apply( ) 함수가 행렬 연산에 사용된다고 하는데 데이터 프레임도 된다.

 

margin 옵션이 1이면 행, 2이면 열에 함수가 적용된다.

(행: margin = 1, 열: margin = 2)

 

예시

apply(x, 1, sum): 행렬 x에서 각 행을 더해서 값을 반환한다. (행이 두 개니까 값이 두 개 반환된다.)

apply(x, 2, min): 행렬 x에서 열 별로 최솟값을 반환한다. (열이 두 개니까 값이 두 개 반환된다.)

apply(x, 1, max): 행렬 x에서 행 별로 최댓값을 반환한다. (행이 두개니까 값이 두 개 반환된다.)

 

결과값

 

 

 

2) lapply( ) 함수

lapply( ) 함수는 연산 결과를 리스트로 반환하는 함수이다.

벡터, 행렬, 리스트, 데이터 프레임 등 모든 데이터 유형에 사용할 수 있다.

 

기본형태

lapply(x, 함수)

x에 데이터 또는 데이터의 일부를 호출하는 식을 넣는다.

ex. 데이터 프레임에서 특정 열만 선택하고 싶은 경우

 

예시

iris는 R에 기본으로 내장되어 있는 데이터 셋이다.

불러오는 값으로 iris[ , 1:4]를 넣었기 때문에 iris의 첫번째 열~네번째 열의 모든 행에 대해서 함수(sum)을 실행한다. 

 

결과값

lapply( ) 함수는 리스트로 반환되기 때문에 결과값이 세로로 나열된다. 

 

 

 

 

3) sapply( ) 함수

sapply( ) 함수는 연산의 결과를 벡터로 반환하는 함수이다.

lapply( ) 처럼 모든 데이터 유형에 사용할 수 있다.

 

기본형태

sapply(x, 함수)

lapply 함수와 동일하지만 반환값의 형식만 다르다. 

동일하게 x에 데이터 또는 데이터의 일부를 호출하는 식을 넣는다.

 

 

예시

불러오는 값으로 iris[ , 1:4]를 넣었기 때문에 iris의 첫번째 열~네번째 열의 모든 행에 대해서 함수(mean)을 실행한다. 

 

결과값

반환값이 벡터이기 때문에 가로로 나열되어 출력된다. 

'R > R 기초' 카테고리의 다른 글

[R 기초] 데이터 구조와 유형  (0) 2023.10.04