R에서 가장 많이 사용하고 있는 패키지이다. 잘 사용하면 엑셀 보다 더 좋은 패키지이다.
dplyr은 주로 집계 쪽에 많이 사용하고 tidyr 은 데이터 모형을 변경 하는데 많이 사용한다.
실제 업무에 있어서 엑셀을 대체 할 정도로 많이 사용하는 패키지이다. 이것에 대한 예제를 가지고 이야기 하겠다. 물론 예제는 아래에 있는 Cheat Sheet 기반으로 작성 하였다.
https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
dplyr 과, tidyr은 데이터를 다루는데, 있어서 매우 편리한 기능을 가지고 있다. 만약에 이러한 기능이 없다면, 아마도 R 사용자가 많지 않았으리라 생각 한다.
dplyr과 tidyr 의 설치
설치는 어렵지 않다. 아래와 같이 간단하게 하면 된다. 나는 우분투 운영체계이기 때문에 root 계정으로 설치할 것이다.
> install.packages("dplyr")
> install.packages("tidyr")
2개의 패키지만 있으면, 웬만한 연산을 할 수 있다.
library(readxl)
library(httr)
# 파일을 불러오는 path를 url 변수로 정의
url = "https://drive.google.com/u/0/uc?id=1OA7ZEx5TKpllZk70DQ7hWGN9quJIEK_q&export=download"
GET(url, write_disk(tf <- tempfile(fileext = ".xlsx")))
## Response [https://doc-0g-58-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/flr9h6veb5adviiq832mclcict5vftmf/1638677400000/07297316292192978319/*/1OA7ZEx5TKpllZk70DQ7hWGN9quJIEK_q?e=download]
## Date: 2021-12-05 04:11
## Status: 200
## Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
## Size: 8.5 MB
## <ON DISK> /tmp/RtmpLrkGL4/file3bf84471e7d8.xlsx
system.time(df <- read_excel(tf, 1L))
## 사용자 시스템 elapsed
## 1.280 0.164 1.443
데이터 표시 및 데이터 요약해서 보기
위의 데이터셋은 국토 해양부 데이터 셋을 받아서 정리한 것이다.
아래 내용은 데이터 형태를 보는데 볼수 있다.
library(dplyr)
#데이터 화면에 맞게 표시한다.
tbl_df(df)
## Warning: `tbl_df()` was deprecated in dplyr 1.0.0.
## Please use `tibble::as_tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
## # A tibble: 117,008 × 15
## 시군구 번지 본번 부번 단지명 `전용면적(㎡)` 계약년월 계약일
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 강원도 강릉시 견소동 202 0202 0000 송정한… 43.38 202111 23
## 2 강원도 강릉시 견소동 289 0289 0000 송정해… 84.99 202111 5
## 3 강원도 강릉시 견소동 289 0289 0000 송정해… 84.99 202111 9
## 4 강원도 강릉시 견소동 289 0289 0000 송정해… 84.99 202111 11
## 5 강원도 강릉시 교동 1983 1983 0000 강릉교… 135.1008 202111 18
## 6 강원도 강릉시 교동 1984 1984 0000 강릉교… 84.9964 202111 1
## 7 강원도 강릉시 교동 1984 1984 0000 강릉교… 84.9964 202111 5
## 8 강원도 강릉시 교동 1984 1984 0000 강릉교… 66.0388 202111 25
## 9 강원도 강릉시 교동 797-1 0797 0001 강원 59.49 202111 16
## 10 강원도 강릉시 교동 1750 1750 0000 교동1… 59.89 202111 2
## # … with 116,998 more rows, and 7 more variables: 거래금액(만원) <chr>,
## # 층 <chr>, 건축년도 <chr>, 도로명 <chr>, 해제사유발생일 <chr>,
## # 거래유형 <chr>, 중개사소재지 <chr>
# 데이터 정보를 요약해서 본다.
glimpse(df)
## Rows: 117,008
## Columns: 15
## $ 시군구 <chr> "강원도 강릉시 견소동", "강원도 강릉시 견소동", "강원도 …
## $ 번지 <chr> "202", "289", "289", "289", "1983", "1984", "1984", "19…
## $ 본번 <chr> "0202", "0289", "0289", "0289", "1983", "1984", "1984",…
## $ 부번 <chr> "0000", "0000", "0000", "0000", "0000", "0000", "0000",…
## $ 단지명 <chr> "송정한신", "송정해변신도브래뉴아파트", "송정해변신도브…
## $ `전용면적(㎡)` <chr> "43.38", "84.99", "84.99", "84.99", "135.1008", "84.9964",…
## $ 계약년월 <chr> "202111", "202111", "202111", "202111", "202111", "202111…
## $ 계약일 <chr> "23", "5", "9", "11", "18", "1", "5", "25", "16", "2", "…
## $ `거래금액(만원)` <chr> "13,000", "34,000", "34,500", "38,000", "55,700", "40,500",…
## $ 층 <chr> "3", "9", "9", "9", "5", "16", "2", "6", "3", "14", "1…
## $ 건축년도 <chr> "1997", "2005", "2005", "2005", "2009", "2017", "2017", "…
## $ 도로명 <chr> "경강로2539번길 8", "경강로2539번길 22", "경강로2539번길…
## $ 해제사유발생일 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
## $ 거래유형 <chr> "중개거래", "중개거래", "중개거래", "중개거래", "직거래",…
## $ 중개사소재지 <chr> "강원 강릉시", "강원 강릉시", "강원 강릉시", "강원 강릉시",…
아래와 같이 데이터를 그리드 형태로 볼수 있다.
# 데이터를 스프레드 시트형태로 본다.
View(df)
R 스프레드 형태로 보기 |
dplyr의 filter, 파이프 연산자 distinct, sample_n의 기능을 보려면 아래를 클릭 하면 된다.
https://rdmkyg.blogspot.com/2021/12/dplyr-filterdistinct-samplen-ubuntu-r.html
댓글 없음:
댓글 쓰기