그 동안 데이터의 유형을 배울 때, 그냥 아무런 의미 없이 추상적으로만 하였는데, 지금은 예제로 할 것이다.
어떠한 데이터 든 처음 받아보면, 항상 정리 하는 것이 있다. 바로 데이터의 유형이다. 데이터의 유형은 목적에 따라 분류가 되는데, " 어떤 단위로 집계할 것인가? 이 데이터는 어떤 데이터와 연관관계가 있는가? 시간 순으로 얼마나 변화되었는가?" 여러가지를 생각해서 데이터 유형을 정리 하여야 한다.
1. 데이터 유형
데이터는 크게 양적자료와 범주형 자료로 나닌다. 연산하거나 집계 할 때 쓰인다.서울시 데이터 셋을 받았을 경우, 처음에는 양적자료도 아니고 범주형 자료도 아닌 문자형 자료(character)로만 데이터가 나온다.
양적자료
연속변수
아파트 평수 (84.3) 온도, 24.3도
이산변수
아파트 거래 건수
범주형자료
순위형
등급 (1등급, 2등급)
명목형
성별 (남자, 여자), 지역
# 라이브러리 블러오기
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")))
## Response [https://doc-0s-58-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/j8nq370k2uc4dm8cck8olk1an00q66aq/1625578650000/07297316292192978319/*/1PT_0-xJvM9KGp5zzx1jjcPAaS25epx4l?e=download]
## Date: 2021-07-06 13:38
## Status: 200
## Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
## Size: 18.6 MB
## <ON DISK> /tmp/RtmpRMlUK9/fileb236467ef0d.xlsx
apt <- read_excel(tf, 1L) # 1L은 sheet 1을 이야기 하는 것이다.
# 필드 이름 보기
colnames(apt)
# 아파트 데이터 프레임 필드(열) 이름 바꾸기
apt <- apt %>%
rename(전용면적_m3 = '전용면적(㎡)') %>%
rename(거래금액_만원 = '거래금액(만원)')
# 데이터 유형 보기
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
<chr>
"73.02", "96.98", "182.2", "91.91", "83.46", "59.8732", "76… ## $ 계약년월
<chr>
"202103", "202103", "202103", "202103", "202103", "202103",… ## $ 계약일
<chr>
"31", "11", "15", "26", "31", "2", "9", "27", "9", "10", "… ## $ 거래금액_만원
<chr>
"226,000", "235,000", "300,000", "230,000", "71,400", "215,00… ## $ 층
<chr>
"7", "3", "1", "15", "2", "15", "11", "7", "23", "10", "… ## $ 건축년도
<chr>
"1983", "1984", "1984", "1984", "2001", "2019", "2019", "20… ## $ 도로명 <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…
아파트 데이터는 2017년 7월 부터 2021년 3월 까지의 데이터 셋을 다운 받은 것이다.
데이터 유형에 대해서 정리 해야 한다.
- 더블형 (double) : 양적자료로 소수점까지 표현됨
- 정수형(integer) : 양적자료로 소수점이 없는 이산 변수
- 문자형(character) ; 문자로 이루어진 것이다.
- 팩터형(factor) ; 범주형 자료로서 순위형과 명목형이 있다.
- 논리형(logial) : 논리형 자료는 TRUE, FALSE 형태의 데이터 유형
자료를 받은 데이터를 아래와 같이 분류 하여 보자.
1. 문자형 (character) ; 별도의 의미 없는 정보성 데이터
- 번지, 본번, 부번, 단지명, 도로명
2. 정수형 (integer) : 양적자료 의미 있음
- 건축년도, 거래금액 , 층
3. 더블형 (double) : 양적자료로 의미 있음
- 전용면적_m3
4. 팩터형 (factor) : 순위와 명목형으로 의미 있음
- 시군구 ( 나중에 시/군/동으로 나눔)
위의 자료와 같이 분류 데이터를 나눌 것이다.
# 데이터 분류 정리하기 아래와 같이 as.유형명으로
# 되어 있는 것은 데이터 유형을 강제로 변환 하는 것이다.
apt <- apt %>%
# 정수형으로 변경(건축년도, 거래금액, 층)
mutate(건축년도 = as.integer(건축년도),
층 = as.integer(층)) %>%
# 거래금액_만원 = as.character(거래금액_만원)) "," 쉼표가 있어서 변환 안됨
# 더블형으로 변경 (전용면적)
mutate(전용면적_m3 = as.double(전용면적_m3))
str(apt)
## 'data.frame': 296656 obs. of 13 variables: ## $ 시군구 : chr "서울특별시 강남구 개포동" "서울특별시 강남구 개포동" "서울특별시 강남구 개포동" "서울특별시 강남구 개포동" ... ## $ 번지 : chr "185" "649" "649" "649" ... ## $ 본번 : chr "0185" "0649" "0649" "0649" ... ## $ 부번 : chr "0000" "0000" "0000" "0000" ... ## $ 단지명 : chr "개포주공 6단지" "경남1" "경남2차" "경남2차" ... ## $ 전용면적_m3 :
num
73 97 182.2 91.9 83.5 ... ## $ 계약년월 : chr "202103" "202103" "202103" "202103" ... ## $ 계약일 : chr "31" "11" "15" "26" ... ## $ 거래금액_만원 : chr "226,000" "235,000" "300,000" "230,000" ... ## $ 층 :
int
7 3 1 15 2 15 11 7 23 10 ... ## $ 건축년도 :
int
1983 1984 1984 1984 2001 2019 2019 2019 2019 2019 ... ## $ 도로명 : chr "개포로 516" "언주로 110" "언주로 110" "언주로 110" ... ## $ 해제사유발생일: chr NA NA NA NA ...
거래금액_만원은 int 형으로 바꾸고 싶었으나, "," 쉼표가 있어서 처리 하지 못하였다. 쉼표 처리 하는 방법에 대해서 다음 주제로 넘기고, 우선 "전용면적_m3"와 "건축년도","층" 정도만 바꾸었고 다음 주제는 문자열 변경과 자르기를 하여, 날짜형 (Date type)로 진행 할 것이다.
댓글 없음:
댓글 쓰기