因為不熟feature engineering,所以這次作業參考兩個來源:
library(tidyverse)
options(stringsAsFactors = F)
# Load data
Train <- read_csv("train.csv", col_names = T)
Target <- read_csv("test.csv", col_names = T)
# Browse data
class(Train)
## [1] "tbl_df" "tbl" "data.frame"
class(Target)
## [1] "tbl_df" "tbl" "data.frame"
str(Train)
## Classes 'tbl_df', 'tbl' and 'data.frame': 891 obs. of 12 variables:
## $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr NA "C85" NA "C123" ...
## $ Embarked : chr "S" "C" "S" "S" ...
## - attr(*, "spec")=List of 2
## ..$ cols :List of 12
## .. ..$ PassengerId: list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Survived : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Pclass : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Name : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Sex : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Age : list()
## .. .. ..- attr(*, "class")= chr "collector_double" "collector"
## .. ..$ SibSp : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Parch : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Ticket : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Fare : list()
## .. .. ..- attr(*, "class")= chr "collector_double" "collector"
## .. ..$ Cabin : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Embarked : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr "collector_guess" "collector"
## ..- attr(*, "class")= chr "col_spec"
str(Target)
## Classes 'tbl_df', 'tbl' and 'data.frame': 418 obs. of 11 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" ...
## - attr(*, "spec")=List of 2
## ..$ cols :List of 11
## .. ..$ PassengerId: list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Pclass : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Name : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Sex : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Age : list()
## .. .. ..- attr(*, "class")= chr "collector_double" "collector"
## .. ..$ SibSp : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Parch : list()
## .. .. ..- attr(*, "class")= chr "collector_integer" "collector"
## .. ..$ Ticket : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Fare : list()
## .. .. ..- attr(*, "class")= chr "collector_double" "collector"
## .. ..$ Cabin : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## .. ..$ Embarked : list()
## .. .. ..- attr(*, "class")= chr "collector_character" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr "collector_guess" "collector"
## ..- attr(*, "class")= chr "col_spec"
colnames(Train)
## [1] "PassengerId" "Survived" "Pclass" "Name" "Sex"
## [6] "Age" "SibSp" "Parch" "Ticket" "Fare"
## [11] "Cabin" "Embarked"
colnames(Target)
## [1] "PassengerId" "Pclass" "Name" "Sex" "Age"
## [6] "SibSp" "Parch" "Ticket" "Fare" "Cabin"
## [11] "Embarked"
# Bind data and remove useless columns
#Target$Survived <- NA
Full <- full_join(Train, Target)
glimpse(Full)
## Observations: 1,309
## Variables: 12
## $ PassengerId <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,...
## $ Survived <int> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0,...
## $ Pclass <int> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3,...
## $ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bra...
## $ Sex <chr> "male", "female", "female", "female", "male", "mal...
## $ Age <dbl> 22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, ...
## $ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4,...
## $ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1,...
## $ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "1138...
## $ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, ...
## $ Cabin <chr> NA, "C85", NA, "C123", NA, NA, "E46", NA, NA, NA, ...
## $ Embarked <chr> "S", "C", "S", "S", "S", "Q", "S", "S", "S", "C", ...
Full <- Full[, -(1:2)]
glimpse(Full)
## Observations: 1,309
## Variables: 10
## $ Pclass <int> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2,...
## $ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradle...
## $ Sex <chr> "male", "female", "female", "female", "male", "male",...
## $ Age <dbl> 22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, 39,...
## $ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0,...
## $ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0,...
## $ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803"...
## $ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51....
## $ Cabin <chr> NA, "C85", NA, "C123", NA, NA, "E46", NA, NA, NA, "G6...
## $ Embarked <chr> "S", "C", "S", "S", "S", "Q", "S", "S", "S", "C", "S"...
# adjust data type
Full$Pclass <- factor(Full$Pclass)
Full$Sex <- factor(Full$Sex)
Full$Embarked <- factor(Full$Embarked)
# Checking NA
NAoutput <- map_df(Full, function(x) sum(is.na(x)))
#sapply(Full, function(x) sum(is.na(x)))
glimpse(NAoutput)
## Observations: 1
## Variables: 10
## $ Pclass <int> 0
## $ Name <int> 0
## $ Sex <int> 0
## $ Age <int> 263
## $ SibSp <int> 0
## $ Parch <int> 0
## $ Ticket <int> 0
## $ Fare <int> 1
## $ Cabin <int> 1014
## $ Embarked <int> 2
#Age, Fare, Cabin, Embarked need further processing
# Checking Fare
Fare_miss <- which(is.na(Full$Fare))
glimpse(Full[Fare_miss, ])
## Observations: 1
## Variables: 10
## $ Pclass <fct> 3
## $ Name <chr> "Storey, Mr. Thomas"
## $ Sex <fct> male
## $ Age <dbl> 60.5
## $ SibSp <int> 0
## $ Parch <int> 0
## $ Ticket <chr> "3701"
## $ Fare <dbl> NA
## $ Cabin <chr> NA
## $ Embarked <fct> S
summary(Full$Fare)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 7.896 14.454 33.295 31.275 512.329 1
# Sex & Pclass
Full %>% filter(Sex == "male", Pclass == 3) %>%
ggplot(aes(x = Fare)) +
geom_bar(stat = "bin", bins = 15)
Full %>% filter(Sex == "male", Pclass == 3) %>%
summarize(median = median(Fare, na.rm = T))
## # A tibble: 1 x 1
## median
## <dbl>
## 1 7.90
Full %>% filter(Sex == "male", Pclass == 3) %>% count()
## # A tibble: 1 x 1
## n
## <int>
## 1 493
# Check Age
Full %>% filter(Sex == "male", Pclass == 3) %>%
ggplot(aes(x = Age)) +
geom_bar(stat = "bin", bins = 30)
# Sex & Pclass & Age
Full %>% filter(Sex == "male", Pclass == 3, Age >= 45) %>%
ggplot(aes(x = Fare)) +
geom_bar(stat = "bin", bins = 30)
Full %>% filter(Sex == "male", Pclass == 3, Age >= 45) %>%
summarize(median = median(Fare, na.rm = T))
## # A tibble: 1 x 1
## median
## <dbl>
## 1 7.75
Full %>% filter(Sex == "male", Pclass == 3, Age >= 45) %>% count()
## # A tibble: 1 x 1
## n
## <int>
## 1 19
Full$Fare[Fare_miss] <- 7.9
# Checking Embarked
glimpse(Full)
## Observations: 1,309
## Variables: 10
## $ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2,...
## $ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradle...
## $ Sex <fct> male, female, female, female, male, male, male, male,...
## $ Age <dbl> 22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, 39,...
## $ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0,...
## $ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0,...
## $ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803"...
## $ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51....
## $ Cabin <chr> NA, "C85", NA, "C123", NA, NA, "E46", NA, NA, NA, "G6...
## $ Embarked <fct> S, C, S, S, S, Q, S, S, S, C, S, S, S, S, S, S, Q, S,...
Embarked_miss <- which(is.na(Full$Embarked))
glimpse(Full[Embarked_miss, ])
## Observations: 2
## Variables: 10
## $ Pclass <fct> 1, 1
## $ Name <chr> "Icard, Miss. Amelie", "Stone, Mrs. George Nelson (Ma...
## $ Sex <fct> female, female
## $ Age <dbl> 38, 62
## $ SibSp <int> 0, 0
## $ Parch <int> 0, 0
## $ Ticket <chr> "113572", "113572"
## $ Fare <dbl> 80, 80
## $ Cabin <chr> "B28", "B28"
## $ Embarked <fct> NA, NA
glimpse(Full$Embarked)
## Factor w/ 3 levels "C","Q","S": 3 1 3 3 3 2 3 3 3 1 ...
Full %>% filter(Sex == "female", Pclass == 1, Fare == 80) %>% count()
## # A tibble: 1 x 1
## n
## <int>
## 1 2
# Sex & Pclass
Full %>% filter(Sex == "female", Pclass == 1) %>%
ggplot(aes(x = Embarked)) +
geom_bar(width = 0.3)
Full %>% filter(Sex == "female", Pclass == 1) %>%
ggplot(aes(x = Age, y = Fare)) +
geom_point(aes(colour = Embarked))
Full %>% filter(Sex == "female", Pclass == 1) %>%
ggplot(aes(x = Embarked, y = Fare)) +
geom_point()
Full %>% filter(Sex == "female", Pclass == 1) %>%
ggplot(aes(x = Embarked, y = Fare)) +
geom_jitter(aes(colour = Pclass))
Full %>% ggplot(aes(x = Embarked, y = Fare)) +
geom_boxplot(aes(colour = Pclass))
Full$Embarked[Embarked_miss] <- 'C'
# Check Name
head(Full$Name, 10)
## [1] "Braund, Mr. Owen Harris"
## [2] "Cumings, Mrs. John Bradley (Florence Briggs Thayer)"
## [3] "Heikkinen, Miss. Laina"
## [4] "Futrelle, Mrs. Jacques Heath (Lily May Peel)"
## [5] "Allen, Mr. William Henry"
## [6] "Moran, Mr. James"
## [7] "McCarthy, Mr. Timothy J"
## [8] "Palsson, Master. Gosta Leonard"
## [9] "Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)"
## [10] "Nasser, Mrs. Nicholas (Adele Achem)"
Full$title <- str_replace_all(Full$Name, '(.*, )|(\\..*)', '')
table(Full$title)
##
## Capt Col Don Dona Dr
## 1 4 1 1 8
## Jonkheer Lady Major Master Miss
## 1 1 2 61 260
## Mlle Mme Mr Mrs Ms
## 2 1 757 197 2
## Rev Sir the Countess
## 8 1 1
rare_title <- c('Dona', 'Lady', 'the Countess','Capt', 'Col', 'Don', 'Dr', 'Major', 'Rev', 'Sir', 'Jonkheer')
Full$title[Full$title == 'Mlle'] <- 'Miss'
Full$title[Full$title == 'Ms'] <- 'Miss'
Full$title[Full$title == 'Mme'] <- 'Mrs'
Full$title[Full$title %in% rare_title] <- 'Rare Title'
Full$title <- factor(Full$title)
table(Full$Sex, Full$title)
##
## Master Miss Mr Mrs Rare Title
## female 0 264 0 198 4
## male 61 0 757 0 25
Full %>%
ggplot(aes(x = title, y = Age)) +
geom_boxplot(aes(colour = Sex))
glimpse(Full)
## Observations: 1,309
## Variables: 11
## $ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2,...
## $ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradle...
## $ Sex <fct> male, female, female, female, male, male, male, male,...
## $ Age <dbl> 22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, 39,...
## $ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0,...
## $ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0,...
## $ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803"...
## $ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51....
## $ Cabin <chr> NA, "C85", NA, "C123", NA, NA, "E46", NA, NA, NA, "G6...
## $ Embarked <fct> S, C, S, S, S, Q, S, S, S, C, S, S, S, S, S, S, Q, S,...
## $ title <fct> Mr, Mrs, Miss, Mrs, Mr, Mr, Mr, Master, Mrs, Mrs, Mis...
Full %>% group_by(.$title) %>%
summarize(meanA = mean(Age, na.rm = T))
## # A tibble: 5 x 2
## `.$title` meanA
## <fct> <dbl>
## 1 Master 5.48
## 2 Miss 21.8
## 3 Mr 32.3
## 4 Mrs 36.9
## 5 Rare Title 45.2
Full$Age[Full$title == 'Master'] = 5.48
Full$Age[Full$title == 'Miss'] = 21.8
Full$Age[Full$title == 'Mr'] = 32.3
Full$Age[Full$title == 'Mrs'] = 36.9
Full$Age[Full$title == 'Rare Title'] = 45.2
map_df(Full, function(x) sum(is.na(x))) %>% glimpse()
## Observations: 1
## Variables: 11
## $ Pclass <int> 0
## $ Name <int> 0
## $ Sex <int> 0
## $ Age <int> 0
## $ SibSp <int> 0
## $ Parch <int> 0
## $ Ticket <int> 0
## $ Fare <int> 0
## $ Cabin <int> 1014
## $ Embarked <int> 0
## $ title <int> 0
Full[, "Cabin"] <- NULL
train_final = Full[1:891, ]
train_final[, c("Name","Ticket")] <- NULL
target_final = Full[892:1309, ]
target_final[, c("Name","Ticket")] <- NULL
train_labels <- Train$Survived
train_final$Survived <- train_labels
# Set a random seed
set.seed(754)
library(randomForest)
glimpse(train_final)
## Observations: 891
## Variables: 9
## $ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2,...
## $ Sex <fct> male, female, female, female, male, male, male, male,...
## $ Age <dbl> 32.30, 36.90, 21.80, 36.90, 32.30, 32.30, 32.30, 5.48...
## $ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0,...
## $ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0,...
## $ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51....
## $ Embarked <fct> S, C, S, S, S, Q, S, S, S, C, S, S, S, S, S, S, Q, S,...
## $ title <fct> Mr, Mrs, Miss, Mrs, Mr, Mr, Mr, Master, Mrs, Mrs, Mis...
## $ Survived <int> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1,...
# Build the model (note: not all possible variables are used)
rf_model <- randomForest(factor(Survived) ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked, data = train_final)
prediction <- predict(rf_model, target_final)
prediction
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0
## 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0
## 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
## 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1
## 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
## 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0
## 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1
## 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
## 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
## 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
## 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1
## 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
## 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
## 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
## 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1
## 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
## 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0
## 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
## 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0
## 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
## 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 0
## 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
## 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0
## 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
## 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0
## 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
## 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0
## 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
## 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1
## 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
## 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
## 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342
## 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0
## 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
## 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1
## 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
## 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0
## 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396
## 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1
## 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
## 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0
## 415 416 417 418
## 1 0 0 1
## Levels: 0 1