R에서 for while 함수 사용을 권장하지 않는다.
for과 while은 처리해야할 것들, 즉 반복 횟수가 많아지면 실행하는데 많은 시간을 소요한다.
따라서 반복 처리를 더 간단하게 하는 다른 함수를 사용하는데, 바로 apply()계열 함수 이다.
apply계의 함수
apply(iris[,1:4],2,mean)
apply(iris[,1:4],1,mean)
는 아래 for 을 사용한 반복문과 동일하다.
for(i in 1:4){
print(mean(iris[,i]))
}
lapply()
apply()와 유사하지만 결과가 List Format이므로 lapply()는 리스트 형태의 값에서 주로 사용한다.
※무조건 컬럼 방향으로 나옴
lapply(iris[,1:4], mean)
abc<-list(mtcars[,1],mtcars[,2],mtcars[,3],mtcars[,4])
abc
lapply(abc, mean)
lapply(abc, mean)[[1]]
sapply()
실행결과를 벡터, 리스트로 선택
sapply(iris[,1:4],mean) #결과가 vector
sapply(iris[,1:4],mean, simplify=F) #결과가 list
사용자 적의 함수를 적용하여 apply 함수 사용도 가능하다.
myfunc <- function(x){
a<-max(x)
b<-min(x)
return(a-b) #최대값과 최소값 차이 리턴
}
sapply(iris[,1:4],myfunc)
※위 자료는 K-MOOC 단국대학교 오세종 교수님의 R 데이터 분석 입문을 참고하였습니다
'공부와 공부와 공부 > R' 카테고리의 다른 글
6-5 프로그래밍 예제 - readline(), cat() (1) | 2019.06.10 |
---|---|
6-1 R 프로그래밍 if(), for(), while(), for문과 while문 차이 (0) | 2019.05.23 |
5-3 다변량 자료의 탐색 R 선그래프 plot() lines() (0) | 2019.05.19 |
5-2 다변량 자료의 탐색 R상관분석, 상관계수 plot(), cor(), cbind(), rbinds(), lm() (0) | 2019.05.19 |
5-1 다변량 자료의 탐색 - 산점도 plot(), pch(), pairs() (0) | 2019.05.12 |