티스토리 뷰

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

> fullDT <- rbindlist(list(test,train), use.names = TRUE) 

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   

 생존 여부


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
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 29 30
31
글 보관함