본문 바로가기
R프로그래밍

R프로그래밍 - apply 함수 이해하기, 데이터 칼럼 별 합계/행별 합계 구하기

by 미스터탁 2020. 6. 25.

R에서는 vector, matrix, list등에 함수를 적용해 빠른 연산 도와주는 apply계열 함수들이 있습니다.

 

대표적으로 많이 사용하는 함수는

 

apply / sapply / lapply / tapply가 있습니다.

 

우선 apply에 대해 알아보겠습니다.

 

apply는 기본적으로 행렬이나 데이터프레임에 대하여 행별 또는 열별 함수를 적용 시켜주는 함수입니다.

 

예를들어 column별 평균이나 표준편차를 구하거나

 

 normalization할때에도 쓰일 수 있겠죠

 

 

사용하는 방법은

 

apply(데이터프레임 또는 행렬 객체, 1 또는 2, 함수)

 

이렇게 사용할수 가 있습니다.

 

가운데에 1이 들어가면 행별로 함수를 적용 시키겠다라는 뜻이고

 

2가 들어가면 열별로 함수를 적용 시키겠다라는 뜻입니다.

m = data.frame(matrix(1:12,ncol=3))
m
apply(m,1,sum) ## 행별 sum구하기
apply(m,2,sum) ## 열별 sum구하기
apply(m,1,mean)
apply(m,2,mean)

 

실행화면은 다음과 같습니다.

 

 

이를 활용해 데이터 정규화를 해보도록 하겠습니다.

 

apply함수를 이용해서 column별 평균과 표준편차를 구한뒤

 

for문을 이용해서 각 column별로 평균값을뺴고 표준편차로 나누어 덮어씌워 주면 됩니다.

 


me<-apply(m,2,mean) ## colmumn 별 평귱
va<-sqrt(apply(m,2,var)) ## colmumn 별 표준편차

for(i in 1:ncol(m)){
  
 m[,i]<-  (m[,i]-me[i])/va[i]
  cat("\n",i)
}

 

 

반응형

댓글