[R 기초] Loop Function: lapply, sapply, tapply 구분
1. lapply
두가지 argument가 필요하다. List x와 list x 에 적용할 function y. lapply를 이용하면 list x 에 있는 요소에 function y 를 한번에 적용할 수 있다. input의 자료형에 관계없이 무조건 list를 반환한다.
예를 들어, 아래와 같은 리스트 a 에 들어있는 리스트 요소들에게 한번에 mean/max 등의 함수를 적용할 수 있다.
x <- list(a = 1:4, b = c(2,4,6,7,20), c = 1:20)
l <- lapply(x, mean)
l
Output
> l
$a
[1] 2.5
$b
[1] 7.8
$c
[1] 10.5
2. sapply
sapply 는 lapply와 기능이 같지만 simplified 단순화된 결과를 반환한다. Matrix 반환도 가능하다.
> s <- sapply(x, mean)
> s
a b c
2.5 7.8 10.5
> class(s)
[1] "numeric"
3. tapply
tapply는 vector의 subset들에 한번에 function 을 적용한다. 그래서 lapply, sapply보다 하나의 argument가 더 필요하다.
tapply(X, INDEX, FUN = NULL.....)
X: input vector
INDEX: is a factor or a list of factors/groups (or else they are coerced to factors)
FUN: a function to be applied
Iris 데이터에 접목해서 예를 들면, 아래와 같이 Species 에 따라 Length 의 Max 가 구해진 것을 볼 수 있다.
> data(iris)
> tapply(iris$Sepal.Length, iris$Species, max)
setosa versicolor virginica
5.8 7.0 7.9
도움이 되었다면 좋아요, 댓글 부탁드려요 :D
반응형
'컴퓨터 COMPUTER > Urban Data Analytics 데이터분석' 카테고리의 다른 글
Time Series Forecasting (1) Anaconda 를 통해 Jupyter Notebook 환경 만들고 fbprophet 패키지 설치하는 법 (0) | 2021.10.02 |
---|---|
[R] Tidycensus를 이용해 미국 통계자료 불러오기 - 미국 Census 사용법 (3) | 2021.01.20 |
[R 기초] 기초 연산자와 데이터 타입/자료형의 종류 (0) | 2020.12.26 |
[R기초] R 설치, Rstudio 설치하기 Windows 10 (0) | 2020.10.21 |
[파이썬을 이용한 웹크롤링] Twitter API 트위터 크롤링 데이터를 활용한 감성분석 (0) | 2020.10.11 |