12월, 2019의 게시물 표시

tidyverse / group_by 설명

tidyverse 패키지 안에 dplyr 이 있는 것은 알죠? dplyr의 최애 함수는 group_by()이죠. 그룹을 지정하는 함수. group_by()로 지정한 다음에 .x와 .y를 쓸 수 있어요. .x는 그룹별 데이터를 tibble 객체로 받고 .y는 그룹의 값을 key처럼 받아요. 파이썬이나 자바스크립트 프로그래머들에게는 익숙한 개념이죠. .x와 .y를 이해했다면 group_map()과 group_modify()를 생각해볼 차례에요. mtcars를 사용해볼께요. 질문: 변속기 종류(am)별로 실린더 수(cyl)가 연비(mpg)에 미치는 영향력의 차이는? 이 문제를 풀려면 > lm(mpg~cyl,data=그룹데이터) 이제 그룹 데이터를 정의해야죠? > mtcars %>% group_by(am) 변속기별로 mtcars 데이터를 나눠서 생각하자는 것이에요. 이제 좀 붙여볼까요? > mtcars %>%    group_by(am) %>%    group_map(~broom::tidy(      lm(mpg~cyl,data=.x) )) 결과는 [[1]] # A tibble: 2 x 5   term        estimate std.error statistic       p.value   <chr>          <dbl>     <dbl>     <dbl>         <dbl> 1 (Intercept)    30.9      2.59      11.9  0.00000000111 2 cyl            -1.98     0.364     -5.42 0.0000458    [[2]] # A tibble: 2 x 5   term        estimate std.error statistic     p.value   <chr>          <dbl>     <dbl>