Loading...

[R] 14. 피벗팅(pivotting)

피벗팅 과거 포스팅에서 spread()와 gather() 함수에 대해서 설명드린적이 있습니다. 데이터를 long format 또는 wide format으로 변환시키는 방법에 대한 설명입니다. 이번에는 같은 내용이지만 tidyverse 라이브러리에 있는 다른 함수를 사용하는 방법에 대해서 말씀드리겠습니다. 물론 spread(), gather() 함수 역시 같이 구동되는 tidyr 라이브러리의 내장 함수입니다만, 사용성을 더 개선한 함수가 있습니다. 예시로 쓰일 데이터 예제 set.seed(2021) # 임의로 데이터를 생성한다. (100명의 유저가 특정 곡을 스트리밍한 이력) temp % mutate( song_class_flag = case_when( song_id %in% c("d", "e", "f")..

[R] purrr 라이브러리 내 map() 함수 이해하기

## [1] "ko_KR.UTF-8" purrr 이번 포스팅에서는 purrr 라이브러리에서 주로 다루는 함수에 대해서 정리해보겠습니다. purrr 라이브러리는 tidyverse 라이브러리를 구동할 때 같이 불러오는 라이브러리 중 하나 입니다. tidyverse에서 purrr를 소개하기로는.. 함수형 프로그래밍 도구(functional programming toolkit)라는 표현을 하고 있습니다. 여기서는 purrr 라이브러리 내 map() 함수에서만 짧게 소개하겠습니다. map_*() 여러 함수(커스텀 함수 등을 포함)들을 적용하여 반복 계산을 조금 더 용이하게 해주는 함수입니다. 일단 기본함수인 map()은 객체 .x에 대해 특정 함수 .f를 적용하여 해당 결과를 리스트로 출력해줍니다. map(.x,..

[R] 13. 분산분석(ANOVA)

예시로 쓰일 데이터 예제 set.seed(2021) # 임의로 데이터를 생성한다. (100명의 유저가 특정 곡을 스트리밍한 이력) temp % aov(streaming_count ~ song_id, data = .) %>% summary() ## Df Sum Sq Mean Sq F value Pr(>F) ## song_id 4 171 42.79 1.72 0.149 ## Residuals 145 3608 24.88 마찬가지로 broom 라이브러리의 tidy() 함수를 이용하여 tibble 포맷의 결과를 출력해볼 수 있습니다. #aov() 함수를 적용한 후 tidy() 함수 사용 temp %>% aov(streaming_count ~ song_id, data = .) %>% tidy(.) ## # A tib..

[R] 12. 카이제곱 검정(chi-squared test)

예시로 쓰일 데이터 예제 set.seed(2021) # 임의로 데이터를 생성한다. (100명의 유저가 특정 곡을 스트리밍한 이력) temp % spread(key = "song_id", value = "n") cross_tabs ## # A tibble: 2 x 6 ## user_gender a b c d e ## ## 1 남성 13 13 14 19 7 ## 2 여성 22 17 10 17 18 위와 같이 교차분할표를 spread() 함수를 사용하셔서 만들 수 도 있습니다. 하지만 카이제곱 검정이 가능한 chisq.test() 함수는 파라미터 값으로 table이나 xtabs라는 클래스를 갖는 객체를 받습니다. 따라서 tidyverse의 접근방식으로 xtabs() 함수를 사용하여 해당 클래스 객체를 만들어보..