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

R프로그래밍 - tapply 함수 제대로 알기, 데이터 요소별 함수 적용하기

by 미스터탁 2020. 6. 25.

이전 포스팅에서 matrix의 행또는 열별로 함수를 적용하는 apply함수에 대해 다루어 보았습니다.

 

https://bluediary8.tistory.com/92

 

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

R에서는 vector, matrix, list등에 함수를 적용해 빠른 연산 도와주는 apply계열 함수들이 있습니다. 대표적으로 많이 사용하는 함수는 apply / sapply / lapply / tapply가 있습니다. 우선 apply에 대해 알아보겠.

bluediary8.tistory.com

 

이번 포스팅에서는 tapply함수에 대해 다루어 보도록 하겠습니다.

 

 

우선 아래와 같이 홀수 짝수 칼럼을 만들어 보도록 하죠

 

ifelse함수를 통해 m의 세번째 칼럼을 2로 나눈 나머지가 0이면 짝수 그게 아니면 홀수를 출력합니다.

m = data.frame(matrix(1:12,ncol=3))
m
ifelse(m[,3] %% 2==0,"짝수","홀수")
m$X4<-ifelse(m[,3] %% 2==0,"짝수","홀수")

 

 

 

여기서 우리가 하고자 하는 것은 m이라는 데이터 프레임의 네번째 칼럼이 홀수냐 짝수냐에 따른 m의 첫번째 칼럼의 합계를 구하고자 하는 것입니다.

 

코드로 보면, 아래와 같이 네번째 칼럼이 홀수인지 짝수인지에 대한 index를 뽑고

 

해당 index를 m에서 가져와 1번째 칼럼의 평균/합계를 구해야합니다.

m$X4 =="홀수"
mean(m[m$X4 =="홀수",1])
mean(m[m$X4 =="짝수",1])
sum(m[m$X4 =="홀수",1])
sum(m[m$X4 =="짝수",1])

 

 

다소 복잡하게 접근을 했는데, 이 tapply함수는 이과정을 한번에 하게 해주는 함수입니다.

 

 

사용하는 방법은

 

tapply(함수를 적용하고자 하는 항목, 구분해서 함수를 적용하고자 하는 항목, 함수)

 

입니다.

 

 

 

tapply(m$X1,m$X4,mean)
tapply(m$X1,m$X4,sum)

 

 

apply와 tapply는 이와 같이 통계량 등을 뽑을때 굉장히 유용한 함수입니다.

반응형

댓글