티스토리 뷰
tidyr 패키지
패키지는 tidy data 를 만들기 위해 만들어졌습니다. tidy data 란 다음의 조건을 만족하는 데이터 입니다.
- 하나의 열은 하나의 변수일 것
- 하나의 행은 하나의 케이스일 것
- 하나의 값은 하나의 셀일 것
- tidy data 는 데이터를 저장하는 표준 방법 이며 tidyverse 패키지 전체에서 사용됩니다. 데이터가 tidy 하다면 데이터를 정제하는 시간을 현저히 줄일 수 있으며 분석 작업에 더 많은 시간을 할애할 수 있습니다.
- 본 포스트는 rstudio 에서 제공하는 tidyr 패키지 cheetsheet 에 나오는 내용을 바탕으로 구성하였습니다.
설치 및 사용법
위에서도 설명했던 것 처럼 tidyr 패키지는 tidyverse 패키지의 일부 입니다. 따라서 tidyverse 패키지 전체를 설치하셔도 되고 tidyr 패키지만 따로 설치하셔도 됩니다. 이후에 사용할 때도 tidyverse 패키지를 불러와도 되고 tidyr 패키지만 불러와도 됩니다.
셀 분할하기 - separate
하나의 셀을 두개로 분할 하기 위해서 사용하는 가장 기본적인 메소드 입니다. separate 내부 파라메터중 자주 사용하는 파라메터는 data, col, into, sep 이며 사용법은 예시를 통해 살펴보겠습니다.
separate( data = test_table, col = rate, sep = "/", into = c("cases", "pop") )
test_table 의 rate 를 보면 / 를 기준으로 두 가지의 데이터가 결합되어 있는 것을 확인할 수 있습니다. 0.7k/19m 을 / 기준으로 0.7k 와 19m 으로 분할하려면 col 에 rate 를 지정하고 sep 에 "/" 를, into 에 cases 와 pop 를 지정해주면 됩니다.
셀 분할하기 - separate_rows
separate 메소드는 하나의 열을 두개의 열로 분할하는 메소드 입니다. 하지만 하나의 열의 데이터를 분할 한 뒤 하나의 열로 만들고 싶다면 separate_rows 메소드를 사용해야합니다.
separate_rows( data = test_table, col = rate, sep = "/" )
separate_rows 에 원하는 테이블, 분할하고 싶은 열이름, 구분자 만 지정해주면 두 개의 데이터를 분할해서 하나의 열로 만드는 것이 가능합니다.
셀 결합하기 - unite
여러 열의 데이터를 하나의 열로 합치기 위해서는 unite 메소드를 사용해야합니다. 예시를 통해 사용법을 살펴보겠습니다.
unite( data = test_table, col = "year", century, year, sep = "" )
원하는 테이블을 지정하고 결합 뒤의 새로운 열의 이름을 지정, 결합할 열들을 나열해준 뒤에 구분자를 정해주면 됩니다. 위의 예시의 경우에는 구분자가 없지만 "_" 같은 것으로 지정해 주었을 경우에는 19 + 99 -> 19_99 처럼 결합이 될 것입니다.
데이터 모양 변형하기 - gather
gather 은 모으다 라는 의미를 갖고 있습니다. 그래서인지 gather 메소드는 여러 열을 2 개의 열로 재구성하는 기능을 갖고 있습니다.
gather( data = test_table, key = "year", value = "cases", `1999`, `2000` )
1999 년도의 정보와 2000 년도의 정보를 year 기준으로 재구성 한 것을 볼 수 있습니다. 하나의 변수로 묶일 수 있는 것들이 각자의 열이 되어있으면 필터링 하거나 플롯을 그릴 때 한 번의 작업을 더 거쳐야하는 경우들이 생깁니다. 효과적으로 데이터를 분석하기 위해선 하나의 변수로 묶일 수 있는 것은 하나의 열로 구성하는 것이 적합합니다.
원하는 테이블을 지정하고 key 값과 value 값의 열이름을 정한 뒤 합칠 열들을 나열해주면 됩니다. 열들을 나열할 때는 작은 따옴표가 아닌 1 옆에 있는 ` 기호를 사용해야합니다.
데이터 모양 변형하기 - spread
spread 는 펼치다 라는 의미를 갖고 있습니다. 그래서 gather 과 반대로 2 개의 열을 여러개의 열로 펼칠 때 사용합니다.
spread( data = test_table, key = "type", value = "count" )
테이블을 지정하고 새로운 열이름이 될 값들이 있는 열을 key 에 지정한 뒤 새로운 열들에 채워질 value 들이 있는 열을 value 에 지정해주면 됩니다.
결측치 다루기
결측치를 다루는 방법은 여러가지가 있습니다.
가장 기본적인 방법으로는 결측치가 있는 행을 삭제하는 방법이 있습니다. 이 때 사용하는 메소드는 drop_na() 메소드 인데 테이블 명과 결측치를 검사할 열이름을 parameter 로 사용합니다.
두 번째 방법은 주변 것으로 채우는 방법입니다. fill() 메소드를 사용하고 drop_na() 와 동일하게 테이블 명과 결측치를 검사할 이름을 받습니다. 추가로 받는 parameter 는 아래에 있는 값으로 채울지 위에 있는 값으로 채울지 인데 기본값은 위에 있는 값으로 채우는 것 입니다.
세 번째 방법은 어떤 값으로 채울지 지정해주는 것 입니다. replace_na() 메소드를 사용하며 테이블 명과 list() 를 사용하여 각 열에 어떤 값으로 채울지 지정해줄 수 있습니다.
2018/06/12 - [R/R Language] - [R 기본] readr 패키지 사용법 (read_csv, write_csv)
2018/06/16 - [R/R Language] - [R 기본] stringr 패키지 사용법 (detect, mutate, manage string)
2018/06/20 - [R/R Language] - [R] 꼭 얄아야 할 R 기본 개념 part.1 (help, install.package, getwd, setwd)
2018/06/20 - [R/R Language] - [R] 꼭 얄아야 할 R 기본 개념 part.2 (행렬곱, t, rbind, cbind, seq, rep)
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 부분이나 질문이 있으시면
댓글로 말씀해주세요.
금방 확인하고 피드백 드리겠습니다.
좋은 하루 되세요. ^^
'R > R Language' 카테고리의 다른 글
[R] Error in match.names(clabs, names(xi)) : 오류 해결법 (3) | 2018.06.19 |
---|---|
[tidyverse] stringr 패키지 사용법 (detect, mutate, manage string) (7) | 2018.06.16 |
[tidyverse] readr 패키지 사용법 (read_csv, write_csv) (3) | 2018.06.12 |
[R 기본] 데이터 구조 - 벡터 (vector) (0) | 2018.05.04 |
[R] length 와 nchar 의 차이점 (0) | 2018.05.04 |
- Total
- Today
- Yesterday
- 강원도여행
- 영월캠핑
- 캠핑장추천
- 계곡캠핑
- SeoulTravel
- Oracle
- 자연힐링
- 캠핑초보
- bukhansannationalpark
- 여름휴가
- 가족여행
- sql
- 글램핑
- 백준
- 알고리즘
- 영월여행
- python
- 강원도캠핑
- 파이썬
- 커플여행
- 가평여행
- Koreancuisine
- 반려견캠핑
- 서울근교캠핑
- 머신러닝
- 여름휴가추천
- 카카오
- 여름캠핑
- 가족캠핑
- 가평캠핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |