티스토리 뷰
kaggle titanic 데이터 출처 : https://www.kaggle.com/c/titanic
패키지
library(data.table)
기본적으로 data.table형식으로 진행
데이터 불러오기
> getwd() # 지정된 디렉토리 확인 / [1] "C:/R/kaggle"
> train <- fread(input = "data/import/train.csv",
na.strings = "")
> test <- fread(input = "data/import/test.csv",
na.strings = "")
data.table::fread : 데이터 테이블 형식으로 불러오는 함수
fread(input = "데이터 디렉토리",
sep ="," , # 구분자 [,\t |;:]
header = TRUE , # 첫줄 컬럼명 여부
stringsAsFactors = TRUE, # character형 컬럼을 Factor 형식으로 변경
na.strings = "") # 결측치 처리 NA로 변경
데이터 확인
> ncol(train)
[1] 12
> ncol(test)
[1] 11
> colnames(train)
[1] "PassengerId" "Survived" "Pclass" "Name" "Sex"
[6] "Age" "SibSp" "Parch" "Ticket" "Fare"
[11] "Cabin" "Embarked"
> colnames(test)
[1] "PassengerId" "Pclass" "Name" "Sex" "Age"
[6] "SibSp" "Parch" "Ticket" "Fare" "Cabin"
[11] "Embarked"
> test$Survived <- NA
test데이터에 Survived 변수가 없기때문에 NA값으로 넣어준다.
이후 결측치 처리 이상치 처리 등등 데이터 변형을 위해 train 데이터와 test를 합쳐 fullDT로 만든다.
fullDT 데이터 형식 변경
> str(fullDT)
Classes ‘data.table’ and 'data.frame': 1309 obs. of 12 variables:
$ PassengerId: int 892 893 894 895 896 897 898 899 900 901 ...
$ Pclass : int 3 3 2 3 3 3 3 2 3 3 ...
$ Name : chr "Kelly, Mr. James" "Wilkes, Mrs. James (Ellen Needs)" "Myles, Mr. Thomas Francis" "Wirz, Mr. Albert" ...
$ Sex : chr "male" "female" "male" "male" ...
$ Age : num 34.5 47 62 27 22 14 30 26 18 21 ...
$ SibSp : int 0 1 0 0 1 0 0 1 0 2 ...
$ Parch : int 0 0 0 0 1 0 0 1 0 0 ...
$ Ticket : chr "330911" "363272" "240276" "315154" ...
$ Fare : num 7.83 7 9.69 8.66 12.29 ...
$ Cabin : chr NA NA NA NA ...
$ Embarked : chr "Q" "S" "Q" "S" ...
$ Survived : int NA NA NA NA NA NA NA NA NA NA ...
- attr(*, ".internal.selfref")=<externalptr>
fullDT$Pclass <- as.factor(fullDT$Pclass)
fullDT$Sex <- as.factor(fullDT$Sex)
fullDT$Cabin <- as.factor(fullDT$Cabin)
fullDT$Embarked <- as.factor(fullDT$Embarked)
fullDT$Survived <- as.factor(fullDT$Survived)
> str(fullDT)
Classes ‘data.table’ and 'data.frame': 1309 obs. of 12 variables:
$ PassengerId: int 892 893 894 895 896 897 898 899 900 901 ...
$ Pclass : Factor w/ 3 levels "1","2","3": 3 3 2 3 3 3 3 2 3 3 ...
$ Name : chr "Kelly, Mr. James" "Wilkes, Mrs. James (Ellen Needs)" "Myles, Mr. Thomas Francis" "Wirz, Mr. Albert" ...
$ Sex : Factor w/ 2 levels "female","male": 2 1 2 2 1 2 1 2 1 2 ...
$ Age : num 34.5 47 62 27 22 14 30 26 18 21 ...
$ SibSp : int 0 1 0 0 1 0 0 1 0 2 ...
$ Parch : int 0 0 0 0 1 0 0 1 0 0 ...
$ Ticket : chr "330911" "363272" "240276" "315154" ...
$ Fare : num 7.83 7 9.69 8.66 12.29 ...
$ Cabin : Factor w/ 186 levels "A10","A11","A14",..: NA NA NA NA NA NA NA NA NA NA ...
$ Embarked : Factor w/ 3 levels "C","Q","S": 2 3 2 3 3 3 2 3 1 3 ...
$ Survived : Factor w/ 2 levels "0","1": NA NA NA NA NA NA NA NA NA NA ...
- attr(*, ".internal.selfref")=<externalptr>
정수형과 문자열로 인식하는 범주형 변수들을
범주형으로 변경한다.
범주형 변수들 컬럼을 확인하고 싶으면 아래 처럼 한다.
> names(Filter(is.factor, fullDT))
[1] "Pclass" "Sex" "Cabin" "Embarked" "Survived"
> head(fullDT)
PassengerId Pclass Name Sex Age
1: 892 3 Kelly, Mr. James male 34.5
2: 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0
3: 894 2 Myles, Mr. Thomas Francis male 62.0
4: 895 3 Wirz, Mr. Albert male 27.0
5: 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0
6: 897 3 Svensson, Mr. Johan Cervin male 14.0
SibSp Parch Ticket Fare Cabin Embarked Survived
1: 0 0 330911 7.8292 <NA> Q <NA>
2: 1 0 363272 7.0000 <NA> S <NA>
3: 0 0 240276 9.6875 <NA> Q <NA>
4: 0 0 315154 8.6625 <NA> S <NA>
5: 1 1 3101298 12.2875 <NA> S <NA>
6: 0 0 7538 9.2250 <NA> S <NA>
> dim(fullDT)
[1] 1309 12
head() 함수로 간단히 데이터를 확인하고 dim 함수로 데이터 row 개수와 col 개수를 한번에 확인한다.
데이터를 불러와 데이터 정제와 전처리 할 준비를 끝냈다.
아래는 타이타닉 데이터에서 사용하는 변수에 대한 설명이다.
변수명 |
설명 |
PassengerId |
승객 ID |
Pclass |
승객 class ( ) |
Name |
이름 |
Sex |
성별 |
Age |
나이 |
SibSp |
Siblings(형제/자매), Spouses(배우자) 동승자수 |
Parch |
Parents(부모), Children(자녀) 동승자수 |
Ticket |
티켓번호 |
Fare |
요금 |
Cabin |
객실 |
Embarked |
승선장소 |
Survived |
생존 여부 |
'빅데이터 분석 > adp 실기' 카테고리의 다른 글
[adp 실기] Titanic 데이터 실습 2 (데이터 전처리) (0) | 2019.02.20 |
---|
- Total
- Today
- Yesterday
- 빅데이터분석전문가
- 실기
- subset
- 실습
- 16.04
- Bigdata
- data.frame
- 리눅스
- 기초
- 빅데이터분석
- 우분투
- 데이터분석
- Kaggle
- 병합
- 데이터구조
- ADSP
- 분석
- vector
- data.table
- 벡터
- Titanic
- 타입
- 데이터형태
- rbase
- RStudio
- 빅데이터
- Jupyter notebook
- 함수
- R
- ADP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |