728x90

이번 시간은 apply 계열을 설명합니다. apply 함수는 "데이터객체"를 설명할 때 "행렬(matrix)" 객체에서

간단하게 설명한 바 있습니다. apply 함수는 사용법이 간단합니다.
이 간단한 apply와 유사한 함수들이 많은데 sapply, lapply, tapply ... 등이 있습니다.
그리고 apply(데이터, 1또는 2, 함수) 형태인데 함수를 사용할 수 있는 것도 유용한 기능입니다.

이 함수에 mean, sum, min,max, prod 간단한 함수를 사용하는 예제를 보이지만

다양한 함수를 적용할 수 있습니다.

 

apply() 함수

m1 <- matrix(c(1,2,3,4,5,6),nrow=2,byrow=T);m1 
# [,1] [,2] [,3] 
# [1,]    1    2    3 
# [2,]    4    5    6 
apply(m1,1,sum)    # 행합계      
apply(m1,2,sum)    # 열합계      
apply(m1,1,min)          
apply(m1,1,max)          
apply(m1,1,mean)         
apply(m1,1,range)         
apply(m1,1,quantile)       
apply(m1,1,prod)  

형태: apply(데이터,옵션,함수)

 

apply(m1,1,sum) :

    데이터 m1에 대하여 ,

    옵션 '1'을 이용하여 (가로, 행)

    통계 sum 을 이용하여 합계를 구합니다.

    옵션 '2'를 이용하면 (세로, 열) 방향으로 합계를 구하게 됩니다.

 

sapply() 와 lapply( )

sapply(s1,sum) # simple 변수별 합계... 벡터    

lapply(s1,sum) # list 변수별 합계... 리스트

 

sapply(s1,sum) # 변수별 합계... 벡터 

    데이터 s1에 대하여 ,

    통계 sum 을 이용하여 합계를 구합니다.

    sapply 는 합계를 벡터 형태로 구합니다.

       

lapply(s1,sum) # 변수별 합계... 리스트

    데이터 s1에 대하여 ,

    통계 sum 을 이용하여 합계를 구합니다.

    lapply 는 합계를 리스트 형태로 구합니다.

 

NA다루기

m1[1,3] <- NA
m1
apply(m1,1,sum)
apply(m1,1,sum,na.rm=T)

 

 

상관계수 구하기

cor(s1)                      # 데이터 s1에 있는 모든 변수의 상관계수를 구합니다.(id와 gender를 제외했으니 가능)
sapply(s1,cor,s1$wage) 
# 데이터 s1에 있는 모든 변수(s1), 상관계수(cor), 단 급여 변수(wage) 그리고 s(simple) 벡터 형식으로 출력

lapply(s1,cor,s1$wage)
 # 데이터 s1에 있는 모든 변수(s1), 상관계수(cor), 단 급여 변수(wage) 그리고 l(list) 리스트 형식으로 출력

 

tapply

tapply(s$wage,s$gender,sum)   # 남녀별 합계 구하기

> tapply(s$wage,s$gender,sum)   # 남녀별 합계 구하기

     F M

    4110 3220

+ Recent posts