데이터 핸들링 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

댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...