데이터 핸들링 dplyr 그리고 tidyr 설치 및 데이터 요약 및 보기 ubuntu R 4.1

   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

 

데이터 표시 및 데이터 요약해서 보기

위의 데이터셋은 국토 해양부 데이터 셋을 받아서 정리한 것이다.  

 http://rtdown.molit.go.kr/

 아래 내용은 데이터 형태를 보는데 볼수 있다. 

 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

댓글 없음:

댓글 쓰기

[주식 클로드 자동매매 프로젝트] 제2편. 데이터 인프라 구축 — 모델보다 데이터가 먼저다

 머신러닝 모델을 이야기하기 전에, 그 모델이 먹는 데이터가 어디서 어떻게 왔는지부터 정직하게 밝혀야 한다. 이 프로젝트에서 가장 많은 시간이 들어간 부분은 화려한 모델 튜닝이 아니라, "내가 정말 그 데이터를 갖고 있는가"를 확인하...