Part1

library(forcats)
library(dplyr)
library(rpart.plot)
library(readr)
train_raw <- read.csv2("train.csv", sep = ",",
                       stringsAsFactors = TRUE)
test_raw <- read.csv2("test.csv", sep = ",",
                      stringsAsFactors = TRUE)
 dim(train_raw)
## [1] 1460   81
 dim(test_raw)
## [1] 1459   80
 replace_na_most <- function(x){
   fct_explicit_na(x, na_level = names(which.max(table(x))))
 }
 replace_na_med <- function(x){
   x[is.na(x)] <- median(x,na.rm = TRUE)
   x
 }
 
 cleanup_minimal <- function(data){
   nomis <- data %>%
     mutate_if(is.factor, replace_na_most)%>%
     mutate_if(is.numeric, replace_na_med)
   nomis
 }
 
train_minclean <- cleanup_minimal(train_raw)
test_minclean <- cleanup_minimal(test_raw)
 
mod_rpart <- rpart(SalePrice~., data=train_minclean)

pred_rpart <- predict(mod_rpart, newdata = test_minclean)
submission_rpart <- tibble(Id=test_raw$Id, SalePrice=pred_rpart)
head(submission_rpart)
## # A tibble: 6 x 2
##      Id SalePrice
##   <int>     <dbl>
## 1  1461   118199.
## 2  1462   151246.
## 3  1463   185210.
## 4  1464   185210.
## 5  1465   249392.
## 6  1466   185210.
write_csv(submission_rpart, file="submission_rpart.csv")

This is the submission screenshot: