dplyr, rio 패키지 [ 컬럼(열) 이름 변경, 변수명 수정] 공공데이터 R 프로그램 기초 아파트

   

 패키지를 불러 올 때 tidyvers 만 불러오면 이 모든 것을 불러 올 수 있는데,  tidyvers 설치 할때 같이 설치 되는 패키지라 별도로 하는 것이 좋다.   왜냐하면 패키지끼지 같은 함수 이름을 쓰는데,  그런 경우에는 별도의 명령어를 써야 하는데,  매우 불편 하다. 

그냥 아는 것만 꺼내다 쓰는 것이 좋다.  

국토 교통부에서 데이터 셋을 받으면,  그 데이터가 좋지 않다.  데이터의 손질이 필요 하다. 손질을 하기 위해 가장 먼저 알아야 할 것은 필드 이름을 알아야 한다.  즉 필드 이름이 매우 잘되어야 데이터를 Manipulation(데이터 조작)을 잘 할 수 있다.  

아래 예제와 같이 아파트 데이터 셋을 받는다.   데이터 셋을 받고 나서 colnames 함수를 이용해서 필드(행)이름을 아래와 같이 본다. 

# 라이브러리 블러오기 
library(readxl)
library(httr)

# 파일을 불러오는 path를 url 변수로 정의      
url = "https://drive.google.com/u/0/uc?id=1PT_0-xJvM9KGp5zzx1jjcPAaS25epx4l&export=download"
GET(url, write_disk(tf <- tempfile(fileext = ".xlsx")))

apt <- read_excel(tf, 1L)  # 1L은 sheet 1을 이야기 하는 것이다. 
# 필드 이름 보기 
colnames(apt)
##  [1] "시군구"         "번지"           "본번"           "부번"          
##  [5] "단지명"         "전용면적(㎡)"   "계약년월"       "계약일"        
##  [9] "거래금액(만원)" "층"             "건축년도"       "도로명"        
## [13] "해제사유발생일"
위의 빨간 색으로 되어 있는 것은  괄호나,  특수문자 가 들어 있다. 그리고 스패이스 값 등이 들어 있으면, 일단 필드(열)의 이름으로 사용 하기가 매우 어렵다. 따라서 아래와 같은 방법으로 이름을 바꾸어야 한다.

가장 쉬운 방법 dplyr의 rename으로 한다. 다른 방법도 있는데, 조금 복잡하다 이 블로그는 기초만 다루므로, 가장 쉬운 방법만 나열 하겠다.

# dplyr 라이브러리 불러오기 
  library(dplyr)
# 아파트 데이터 프레임 필드(열) 이름 바꾸기       
  apt1 <- apt %>% 
          rename(전용면적_m3 = '전용면적(㎡)') %>% 
          rename(거래금액_만원 = '거래금액(만원)') %>% 
          rename(해제사유일 = 해제사유발생일)

  colnames(apt1)        
##  [1] "시군구"        "번지"          "본번"          "부번"         
##  [5] "단지명"        "전용면적_m3"   "계약년월"      "계약일"       
##  [9] "거래금액_만원" "층"            "건축년도"      "도로명"       
## [13] "해제사유일"
dplyr의 특별한 기능은 파이프 연산자(%>%) 이다. 이것이 있음으로 인해 코드가 간단하게 처리 된다.
위와 같이 특수 문자나 스페이스가 들어가 있는 필드(열)에는 인용부호구 ' 쿼텐션을 넣어야 한다. 그런데, dplyr은 name은 다른 것과는 조금 다르다.

문법은 아래와 같다.
reanme( 바뀔 필드 = 원래필드)

이 방법이 정말 쉬운 이유는 다른 방법으로 하면, 전체를 바꾸어야 하나, dplyr로 하면 정말로 필요 한 것만 하면 되는 정말 쉬운 도구이다.



댓글 없음:

댓글 쓰기

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

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