티스토리 뷰

반응형



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)








부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 부분이나 질문이 있으시면 

댓글로 말씀해주세요.


금방 확인하고 피드백 드리겠습니다.


좋은 하루 되세요. ^^


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함