<Tidyverse> 패키지는 데이터 분석을 위한 패키지로 R에서 정말 많이 사용됩니다.
이전 챕터에서 <Tidymodels> 패키지가 <Tidyverse> 패키지에 영감을 받아 만들어졌다고 소개했는데요.
이에 챕터 2에서는 <Tidyverse> 패키지의 철학과 어떻게 적용하는지에 대해 소개하고 있습니다.
1. Tidyverse Principles
- Design for Humans : 다양한 사람들이 쉽게 이해하고 사용할 수 있도록 설계
- Reuse existing Data Structures : 기존에 존재하는 데이터 구조를 반환해 빠른 이해가 가능
- Design for Pipe and Functional Programming : 파이프 라인과 함수형 프로그래밍에 적합
저도 처음에 맨땅에 헤딩으로 <Tidyverse> 패키지를 사용했었는데요.
그때는 어떤 철학과 특징이 있는지 몰랐는 데 사용할수록 훌륭한 패키지라는 것을 체득하게 되었습니다.
우선 사용이 간단하고 직관적입니다.
예를 들어, 문자열의 길이를 구하고자 한다면 base R 에서는 `nchar`라는 함수를 사용해야 하지만 <Tidyverse>에서는 `str_length`라는 함수를 사용합니다.
그리고 탭 자동완성(Tab-completion) 기능을 활용해 함수를 쉽게 찾을 수 있습니다.
문자열 결합의 base R 함수는 `paste0` 함수이지만, <Tidyverse>에서는 `str_c`입니다.
따라서 만약 함수명이 생각나지 않는다면 str까지 입력하고 Tab키를 눌러서 빠르게 찾을 수 있습니다.
또한, 데이터를 조작하는데 사용하는 주요 함수들은 데이터프레임을 입력받아, 데이터프레임을 출력한다는 특징이 있습니다.
특정열을 선택하는 `select` 함수, 새로운 열을 만드는 `mutate` 함수, 조건을 만족하는 행을 보기 위한 `filter` 함수를 포함해 많은 <dplyr>, <tidyr> 함수가 데이터프레임(티블)을 입력받아 데이터프레임(티블)을 출력합니다.
그래서 출력값의 타입을 쉽게 예상할 수 있고 새로운 데이터 타입을 출력하지 않아 인지 부하를 줄일 수 있습니다.
마지막으로 파이프 라인으로 연결하기 간단하도록 설계되었습니다.
수원지에서 물을 원하는 곳으로 이동시키기 위해서 파이프를 연결하는 것처럼 R에서 파이프는 여러 함수를 물 흐르듯 연결하는 연산자입니다.
주민번호 데이터셋에서 문자열 전처리를 수행한다고 가정해 봅시다.
(1) 앞뒤 공백 제거 (2) 문자열의 맨 마지막 문자 출력 (3) "1"이면 남자, "2"면 여자로 표시
기존에는 아래 코드와 같이 중간 결과마다 변수를 지정해 함수를 적용하거나, 함수1(함수2(함수3, ...), ...), ...)와 같이 여러 함수를 한 번에 중첩시켜야 했는데 번거롭거나 스파게티 코드가 되어버린다는 단점이 있습니다.
library(tidyverse)
jumin = c(" 851201-1 ", " 940714-2 ", " 031022-4 ")
trimmed_jumin = str_trim(jumin) # 공백제거
last_char = str_sub(trimmed_jumin, -1, -1) # 마지막 문자
case_match(
last_char,
c("1", "3") ~ "Men",
c("2", "4") ~ "Women"
)
하지만, 파이프를 사용하면 간단하게 표현할 수 있고 흐름도 쉽게 파악할 수 있습니다.
jumin |>
str_trim() |>
str_sub(-1) |>
case_match(
c("1", "3") ~ "Men",
c("2", "4") ~ "Women"
)
기존에 R에서 파이프 연산을 위해 <magrittr> 패키지의 `%>%` 함수를 사용했었는데요, 2021년 5월 R 4.1.0 버전에서 베이스 파이프 연산자 `|>`를 출시해 이후로는 해당 연산자를 사용하고 있습니다.
2. Examples of Tidyverse Syntax
2절에서는 <Tidyverse> 구문 예시를 소개하는데, 요약하는건 좀 애매한 거 같아서 생략합니다.
2 A Tidyverse Primer | Tidy Modeling with R
The tidymodels framework is a collection of R packages for modeling and machine learning using tidyverse principles. This book provides a thorough introduction to how to use tidymodels, and an outline of good methodology and statistical practice for phases
www.tmwr.org
+ 2025.10 내용수정
'Data Science > Modeling' 카테고리의 다른 글
| [Tidy Modeling with R] 5. 데이터 분할 (1) | 2023.09.10 |
|---|---|
| [Tidy Modeling with R] 4. 부동산 데이터 탐색적 분석 (1) | 2023.09.10 |
| [Tidy Modeling with R] 3. 모델링 기본 원리 (0) | 2023.09.09 |
| [Tidy Modeling with R] 1. 모델링을 위한 소프트웨어 (0) | 2023.09.07 |
| [Tidy Modeling with R] 0. 서론 (1) | 2023.09.07 |