이전 포스팅에서 matrix의 행또는 열별로 함수를 적용하는 apply함수에 대해 다루어 보았습니다.
https://bluediary8.tistory.com/92
이번 포스팅에서는 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는 이와 같이 통계량 등을 뽑을때 굉장히 유용한 함수입니다.
반응형
'R프로그래밍' 카테고리의 다른 글
R프로그래밍 - 문자열 분리하는 함수 str_split / list구조 (0) | 2020.06.26 |
---|---|
R프로그래밍 - list함수 알아보기 (0) | 2020.06.25 |
R프로그래밍 - apply 함수 이해하기, 데이터 칼럼 별 합계/행별 합계 구하기 (0) | 2020.06.25 |
R프로그래밍 - 여러 폴더에서 원하는 csv파일만 불러서 합치기 (0) | 2020.06.25 |
R프로그래밍 - 문자열 찾는 함수 str_detect 함수 %in%연산자 (0) | 2020.06.24 |
댓글