반응형
lapply()
- 입력값으로 vector 또는 list를 받아 list를 반환한다.
즉 vector를 넣든, list를 넣든 결과값으로 list 형식의 자료형으로 return 해준다.
그리고 이 list자료를 다시 vector로 바꾸기 위해서는 unlist를 사용해주면 된다.
a <- lapply(1:10, function(x) x*2)
unlist(a)
> typeof(a)
[1] "list"
> typeof(unlist(a))
[1] "double"
Sapply()
- lapply는 list를 반환하지만 sapply는 matrix 또는 vector로 반환한다.
> zz <- sapply(iris[,1:4], function(x){ x*5 })
> typeof(zz)
[1] "double"
> class(zz)
[1] "matrix"
> head(zz)
Sepal.Length Sepal.Width Petal.Length Petal.Width
[1,] 25.5 17.5 7.0 1
[2,] 24.5 15.0 7.0 1
[3,] 23.5 16.0 6.5 1
[4,] 23.0 15.5 7.5 1
[5,] 25.0 18.0 7.0 1
[6,] 27.0 19.5 8.5 2
> zzz <- sapply(iris[1,1:4], function(x){ x*5 })
> typeof(zzz)
[1] "double"
> class(zzz)
[1] "numeric"
기본적으로 iris 데이터는 data.frame이지만, matrix형태로 반환해주는 것을 알 수 있다.
결론은, 반환하려는 자료형의 형태에 따라 lapply와 sapply를 다르게 사용해주면 된다.
반응형
'Data > R' 카테고리의 다른 글
R) Data Frame 다루기 (0) | 2021.02.06 |
---|---|
R) rvest와 httr 이용해서 네이버 실시간 증권 뉴스 크롤링 (0) | 2021.01.05 |
R) class(), typeof()의 차이 (0) | 2020.04.23 |
R) apply 정리 (0) | 2020.04.22 |
R에서 폴더 생성하고 csv 파일 저장하기 (0) | 2020.04.16 |