Cargamos los datos y cambiamos los nombres de las variables
datos <- read.table("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer/breast-cancer.data", sep=",")
names(datos) <- c("Clase","age","menopause","tumor_size",
"inv_nodes","node_caps","deg_malig",
"breast","breast_quad","irradiat")
Exploramos los primeros 6 registros usando el comando head:
head(datos) # primeros 6
## Clase age menopause tumor_size inv_nodes node_caps deg_malig
## 1 no-recurrence-events 30-39 premeno 30-34 0-2 no 3
## 2 no-recurrence-events 40-49 premeno 20-24 0-2 no 2
## 3 no-recurrence-events 40-49 premeno 20-24 0-2 no 2
## 4 no-recurrence-events 60-69 ge40 15-19 0-2 no 2
## 5 no-recurrence-events 40-49 premeno 0-4 0-2 no 2
## 6 no-recurrence-events 60-69 ge40 15-19 0-2 no 2
## breast breast_quad irradiat
## 1 left left_low no
## 2 right right_up no
## 3 left left_low no
## 4 right left_up no
## 5 right right_low no
## 6 left left_low no
Ver las dimensiones del dataset
dim(datos)
## [1] 286 10
Realizamos una exploración del tipo de columnas que tiene este dataset.
str(datos)
## 'data.frame': 286 obs. of 10 variables:
## $ Clase : chr "no-recurrence-events" "no-recurrence-events" "no-recurrence-events" "no-recurrence-events" ...
## $ age : chr "30-39" "40-49" "40-49" "60-69" ...
## $ menopause : chr "premeno" "premeno" "premeno" "ge40" ...
## $ tumor_size : chr "30-34" "20-24" "20-24" "15-19" ...
## $ inv_nodes : chr "0-2" "0-2" "0-2" "0-2" ...
## $ node_caps : chr "no" "no" "no" "no" ...
## $ deg_malig : int 3 2 2 2 2 2 2 1 2 2 ...
## $ breast : chr "left" "right" "left" "right" ...
## $ breast_quad: chr "left_low" "right_up" "left_low" "left_up" ...
## $ irradiat : chr "no" "no" "no" "no" ...
Observamos que en este set de datos todas las variables excepto deg_malig son de tipo texto.
Resumen de todos los datos
summary(datos)
## Clase age menopause tumor_size
## Length:286 Length:286 Length:286 Length:286
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## inv_nodes node_caps deg_malig breast
## Length:286 Length:286 Min. :1.000 Length:286
## Class :character Class :character 1st Qu.:2.000 Class :character
## Mode :character Mode :character Median :2.000 Mode :character
## Mean :2.049
## 3rd Qu.:3.000
## Max. :3.000
## breast_quad irradiat
## Length:286 Length:286
## Class :character Class :character
## Mode :character Mode :character
##
##
##
Resumen de una variable age
summarytools::freq(datos$age, order = "freq")
## Frequencies
## datos$age
## Type: Character
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 50-59 96 33.57 33.57 33.57 33.57
## 40-49 90 31.47 65.03 31.47 65.03
## 60-69 57 19.93 84.97 19.93 84.97
## 30-39 36 12.59 97.55 12.59 97.55
## 70-79 6 2.10 99.65 2.10 99.65
## 20-29 1 0.35 100.00 0.35 100.00
## <NA> 0 0.00 100.00
## Total 286 100.00 100.00 100.00 100.00
Se puede observar que la mayor cantidad de individuos tienen edad entre 40 y 60 años
Resumen de una variable menopause
summarytools::freq(datos$men, order = "freq")
## Frequencies
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ------------- ------ --------- -------------- --------- --------------
## premeno 150 52.45 52.45 52.45 52.45
## ge40 129 45.10 97.55 45.10 97.55
## lt40 7 2.45 100.00 2.45 100.00
## <NA> 0 0.00 100.00
## Total 286 100.00 100.00 100.00 100.00
Se puede observar que la mayor cantidad de individuos tienen valor de menopause igual a premeno y ge40
Visualizamos la clasificación de los casos de cancer con un gráfico circular.
pie(table(datos$Clase),
main="Gráfico para la clasificación de casos")
La mayoría de datos pertenece a la clase: no-recurrence-events
barplot(table(datos$age),
xlab="Grupos Etários",
ylab="Frecuencia",
main="Distribución de edades")
barplot(table(datos$menopause),
xlab="Categorias de menopause",
ylab="Frecuencia",
main="Distribución de menopause")