[ 변수, 문자열 바꾸기 gsub (정규화 표현식] 공공데이터 R 프로그램 기초 아파트


    일반 프로그램에서 변수는 특정 숫자를 영어 알파벳에 대입 해서 처리하는 것은 변수로 정했다.  아래 예제와 같이 아주 간단한 변수는 아래와 같다. 
    
    >   a = 1  
    >   b = c
    >   c = a+b
    > print(c)
     3


1.  독립변수와 종속변수의 정의

 하지만 여기에서 말하는 변수는 독립변수 하고,  종속 변수 이다.    정의는 아래와 같다. 

      1. 독립변수 :  의도적으로 변화 시키는 변수 
      2. 종속변수 :  독립 변수의 변화에 따라 어떻게 변화 하는 지 알고 싶어 하는 것

그리고 영어번역시 유의 점은 아래와 같다. 
   
      1. 독립변수 :  Independent variable, Predictor variable,  Explanatory variable, controlled variable, 인공지능/머신러닝 feature 로 불림
      2. 종속변수 : dependent variable 


  아래 아파트 데이터에서 예측을 위해,  어느것 이 독립변수이고,  종속변수 인지 정의할 것이다.   아래와 같이 질문을 해보자. 

 우리가 예측하여  알고 싶어 하는 것 ?
       거래금액_만원  → 종속변수 (dependent variable) 

어떤 것에 의해서 아파트 가격이 변화 하는가?
       시간, 지역,  아파트 층, 건축년도, 전용면적  → 독립 변수 (Independent variable)


아래는 지금 까지 정리한 서울시 아파트 데이셋인데,  우리가 알고자 하는 독립 변수인 "거래금액_만원"에 대해서 데이터 타입을 숫자(integer)화 할 예정이다. 

# 라이브러리 불러오기 
  library(rio)  
  library(dplyr)
 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을 이야기 하는 것이다. 
# 아파트 데이터 프레임 필드(열) 이름 바꾸기       
  apt <- apt %>% 
          rename(전용면적_m3 = '전용면적(㎡)') %>% 
          rename(거래금액_만원 = '거래금액(만원)') 


# 데이터 유형 변경
  apt <- apt %>% 
            mutate(건축년도 = as.integer(건축년도),
                   층 = as.integer(층)) %>% 
            mutate(전용면적_m3 = as.double(전용면적_m3)) 

 apt$거래금액_만원[1]
## [1] "226,000"
지금 까지 데이터 정리 한 것이고,  거래금액_만원은 "226,600" 문자열로 되어 있는데, ","쉼표가 있어서 변경 하지 못하였다.  아래 gsub를 이용하면 쉼표를 뺄 수 있다. 
  
   gsub(변경전 문자, 변경후 문자, 데이터 벡터)
   gsub( ",", "", "226,000")

위와 같은 형태의 명령어를 사용하고 as.integer를 하면,  우리가 계산 할 수 있는 숫자로 변경 할 수 있다. 

 # 계산할 수 있게  문자열 바꾸기 apt[거래금액_만원]
  apt <- apt %>% mutate(거래금액_만원 = as.integer(
                                               gsub(",", "", 거래금액_만원)))
  glimpse(apt)   
## Rows: 296,656
## Columns: 13
## $ 시군구         <chr> "서울특별시 강남구 개포동", "서울특별시 강남구 개포동", "서울특별시 강남구 개포동", "서울특별시 …
## $ 번지           <chr> "185", "649", "649", "649", "1164-30", "138", "138", "138…
## $ 본번           <chr> "0185", "0649", "0649", "0649", "1164", "0138", "0138", "…
## $ 부번           <chr> "0000", "0000", "0000", "0000", "0030", "0000", "0000", "…
## $ 단지명         <chr> "개포주공 6단지", "경남1", "경남2차", "경남2차", "뉴현대파크빌", "디에이치아너힐즈", "…
## $ 전용면적_m3    <dbl> 73.0200, 96.9800, 182.2000, 91.9100, 83.4600, 59.8732, 76.1…
## $ 계약년월       <chr> "202103", "202103", "202103", "202103", "202103", "202103",…
## $ 계약일         <chr> "31", "11", "15", "26", "31", "2", "9", "27", "9", "10", "…
## $ 거래금액_만원  <int> 226000, 235000, 300000, 230000, 71400, 215000, 258000, 213000…
## $ 층             <int> 7, 3, 1, 15, 2, 15, 11, 7, 23, 10, 11, 6, 2, 12, 3, 15, …
## $ 건축년도       <int> 1983, 1984, 1984, 1984, 2001, 2019, 2019, 2019, 2019, 2019,…
## $ 도로명         <chr> "개포로 516", "언주로 110", "언주로 110", "언주로 110", "논현로2길 61-4", …
## $ 해제사유발생일 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
     
 이로써 우리가 예측할때 알고자  하는 종속 변수인 거래금액_만원에 대하여 정리를 하였다.  

2.  정규화 표현식 참고 

Syntax
Description
\\d
Digit, 0,1,2 ... 9
\\D
Not Digit
\\s
Space
\\S
Not Space
\\w
Word
\\W
Not Word
\\t
Tab
\\n
New line
^
Beginning of the string
$
End of the string
\
Escape special characters, e.g. \\ is "\", \+ is "+"
|
Alternation match. e.g. /(e|d)n/ matches "en" and "dn"
Any character, except \n or line terminator
[ab]
a or b
[^ab]
Any character except a and b
[0-9]
All Digit
[A-Z]
All uppercase A to Z letters
[a-z]
All lowercase a to z letters
[A-z]
All Uppercase and lowercase a to z letters
i+
i at least one time
i*
i zero or more times
i?
i zero or 1 time
i{n}
i occurs n times in sequence
i{n1,n2}
i occurs n1 - n2 times in sequence
i{n1,n2}?
non greedy match, see above example
i{n,}
i occures >= n times
[:alnum:]
Alphanumeric characters: [:alpha:] and [:digit:]
[:alpha:]
Alphabetic characters: [:lower:] and [:upper:]
[:blank:]
Blank characters: e.g. space, tab
[:cntrl:]
Control characters
[:digit:]
Digits: 0 1 2 3 4 5 6 7 8 9
[:graph:]
Graphical characters: [:alnum:] and [:punct:]
[:lower:]
Lower-case letters in the current locale
[:print:]
Printable characters: [:alnum:], [:punct:] and space
[:punct:]
Punctuation character: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
[:space:]
Space characters: tab, newline, vertical tab, form feed, carriage return, space
[:upper:]
Upper-case letters in the current locale
[:xdigit:]
Hexadecimal digits: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f


댓글 없음:

댓글 쓰기

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

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