6월, 2019의 게시물 표시

tidyverse 특집 / purrr 소개

purrr Code Show All Code Hide All Code Download Rmd purrr tidyverse 무엇보다도 tidyverse를 먼저 불러와야한다. library(tidyverse) Map함수의 기본 purrr::map()은 함수에 파라미터를 반복적용하기 위해 사용된다. 예를 들어, rnorm(n=2,mean=1), rnorm(n=2,mean=2), rnorm(n=2,mean=3)… 등을 처리하는 경우를 생각해보자. for()를 쓰지 않고 map을 쓰면 다음과 같이 간단하게 처리할 수 있다. 결과값은 list이다. map(1:5,rnorm,n=2) [[1]] [1] 1.5277437 -0.1681184 [[2]] [1] 1.265389 2.071110 [[3]] [1] 2.332851 2.908670 [[4]] [1] 3.591315 2.631672 [[5]] [1] 3.874069 5.216847 이제 위의 결과값을 받아(list 형태) 평균을 계산해보자. 각각의 list에 대해 함수를 적용하고 벡터로 결과를 바꾸려면 map_dbl()을 사용한다. map(1:5,rnorm,n=2)%>%map_dbl(mean) [1] 0.3867665 1.7964589 3.7069350 4.0836371 6.1565157 잘 되었는지 확인하기 위해 숫자를 좀 더 키워보자. map(1:5,rnorm,n=10000)%>%map_dbl(mean)%>%round() [1] 1 2 3 4 5 평균이 각각 1,..,5까지 잘 나왔다. 표현에 불만이 있다면 좀더 명시적으로 처리할 수도 있다. map(1:5,function(x){rnorm(n=10000,x)})%>%map_dbl(mean)