# You can write R code here and then click "Run" to run it on our platform

library(readr)

# The competition datafiles are in the directory ../input
# Read competition data files:
train <- read_csv("../input/train.csv")
test <- read_csv("../input/test.csv")

# Load librarys
library("ggplot2")
library("class")
library("rpart")
library("rpart.plot")
library("useful")
library("randomForest")



# Read competition data files:
d.train <- read_csv("../input/train.csv")
d.test <- read_csv("../input/test.csv")


a<-colSums(d.train[-1])
b<-colSums(d.test)

a<-as.vector(a)
b<-as.vector(b)

zeros_train<-which(a==0)
zeros_test<-which(b==0)

# Comprobamos que todo elemento de a está en b

ambos_zeros<-vector('numeric')

for (i in 1:length(zeros_train))
{
  for (j in 1:length(zeros_test))
  {
    if(zeros_train[i]==zeros_test[j])
      ambos_zeros<-c(ambos_zeros,zeros_train[i])
  }
}
#Los ceros no valen

d.newtrain=(d.train[-(ambos_zeros+1)])
d.newtest=(d.test[-(ambos_zeros)])

# train$label<-as.factor(train$label)

set.seed(1234)

t <- proc.time() # Inicia el cronómetro
# NUESTRO CODIGO
funcion_sin_zeros  <- d.newtrain$label~.
Modelo_Arbol_sin_zeros   <- rpart(funcion_sin_zeros, method="class",data=d.newtrain)
Prediccion_sin_zeros      <- predict(Modelo_Arbol_sin_zeros,d.test)
tiempo_sin_zeros <-proc.time()-t    # Detiene el cronómetro

# Estudiamos la evolución del error a medida que el árbol va creciendo
summary(Modelo_Arbol_sin_zeros) # estadísticas detalladas de cada nodo
printcp(Modelo_Arbol_sin_zeros) # estadísticas de resultados
plotcp(Modelo_Arbol_sin_zeros) # evolución del error a medida que se incrementan los nodos

##########################################\

t <- proc.time() # Inicia el cronómetro
funcion <- d.train$label~.
Modelo_Arbol   <- rpart(funcion, method="class",data=d.train)
Prediccion     <- predict(Modelo_Arbol,d.test)
tiempo_con_zeros <-proc.time()-t    # Detiene el cronómetro

# Estudiamos la evolución del error a medida que el árbol va creciendo
summary(Modelo_Arbol) # estadísticas detalladas de cada nodo
printcp(Modelo_Arbol) # estadísticas de resultados
plotcp(Modelo_Arbol) # evolución del error a medida que se incrementan los nodos

##########################################