Se puede realizar de formas diferentes :
Los anteriores caso implican que tengamos la base de datos descargada en una carpeta de nuestro PC
Por ejemplo
Instalación de paquetes requeridos
# install.packages("RSocrata", dependencies = TRUE) # instalación de paquete RSocrata
library(RSocrata) # llamado de libreria
# token <- "zxMsD6eXc0zlEMryRGW87Hwrz" # token
# Colombia <- read.socrata("https://www.datos.gov.co/resource/gt2j-8ykr.json", app_token = token) # lectura
Este proceso tarde unos minutos pues la base es grande
Para guardar el archivo en mi PC, el formarto RDS es menos pesado En ete caso se guarda el archivo con el nombre de Colombia.RDS en la carpeta data/
saveRDS(Colombia, file = "data/Colombia23.RDS")
data(iris) # data set iris
data(cars) # data set cars
Ahora si tengo un archivo en mi PC, puedo utilizar la siguinte función para conocer la ruta donde esta el archivo y luego copiando la ruta obtenida con Ctrl+C,
file.choose()
En mi caso se genera la ruta “data/Colombia.RDS”
Colombia<- readRDS("data/Colombia23.RDS")
Después de bajar la data es necesario revisar que no tenga problemas como:
summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
summary(cars)
speed dist
Min. : 4.0 Min. : 2.00
1st Qu.:12.0 1st Qu.: 26.00
Median :15.0 Median : 36.00
Mean :15.4 Mean : 42.98
3rd Qu.:19.0 3rd Qu.: 56.00
Max. :25.0 Max. :120.00
fecha_reporte_web id_de_caso fecha_de_notificaci_n departamento
Length:9636 Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
departamento_nom ciudad_municipio ciudad_municipio_nom edad
Length:9636 Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
unidad_medida sexo fuente_tipo_contagio ubicacion
Length:9636 Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
estado recuperado fecha_inicio_sintomas fecha_diagnostico
Length:9636 Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
fecha_recuperado tipo_recuperacion per_etn_ nom_grupo_
Length:9636 Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
fecha_muerte pais_viajo_1_cod pais_viajo_1_nom
Length:9636 Length:9636 Length:9636
Class :character Class :character Class :character
Mode :character Mode :character Mode :character
Por otro lado la función View() permite visualizar la base en una ventana de manera separada
View(Colombia)
View(iris
Podemos visualizar los primeros 6 registros con el nombre de las variables
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
y los últimos seis registros
tail(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
145 6.7 3.3 5.7 2.5 virginica
146 6.7 3.0 5.2 2.3 virginica
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
Para realizar una revisión de una variable cualitativa utilizamos la función table(), la cual construye una tabla de frecuencias
table(Colombia23$ubicacion)
casa Casa Fallecido Hospital Hospital UCI N/A
12 9150 69 331 33 41
Observemos aparecen valores diferentes para una sola categoría de la variable:
Es necesario estandarizar estos valores y convertirlos en este caso a todos los valores en casa (en minúsculas). Para vamos a utilizar la función : str_to_lower() del paquete stringr, guardandolo dentro de la misma variable
Inicialmente debemos de instalar y activar el paquete tidyverse que es un paquete que contiene ocho paquetes todos enfocados al análisis de datos:
install.packages("tidyverse", dependencies = TRUE)
library(tidyverse)
Despues de activar el conjunto de librerías, procedemos a realizar el arreglo de la variable Colombia$ubucacion
Ahora arreglamos el problema presentado en la variable ubucacion, primero unificando todos los valores a en minúscula
Colombia23$ubicacion=str_to_lower(Colombia23$ubicacion)
Para verificar los arreglo volvemos a construir la tabla
table(Colombia23$ubicacion)
casa fallecido hospital hospital uci n/a
9162 69 331 33 41
Después de esto realizamos en cambio de n/a por NA
Colombia23$ubicacion[Colombia23$ubicacion=="n/a"]=NA
table(Colombia23$ubicacion)
casa fallecido hospital hospital uci
9162 69 331 33
Otro problema que presenta la base de datos es que la variable edad es en formato chr y debería ser numérica. Para cambiar el formato utilizamos la función as.numeric() y la guardamos en la misma variable
class(Colombia23$edad)
[1] "character"
Colombia23$edad=as.integer(Colombia23$edad)
class(Colombia23$edad)
[1] "integer"
De igual manera procedemos con las demás variables
Colombia23$sexo=str_to_lower(Colombia23$sexo)
Colombia23$estado=str_to_lower(Colombia23$estado)
Colombia23$estado[Colombia23$estado=="n/a"]=NA
Colombia23$recuperado=str_to_lower(Colombia23$recuperado)
Colombia23$recuperado[Colombia23$recuperado=="n/a"]=NA
Verificamos los cambios
table(Colombia23$sexo)
f m
5611 4025
table(Colombia23$estado)
fallecido grave leve moderado
69 33 9162 331
table(Colombia23$recuperado)
activo fallecido recuperado
4839 69 4687
Finalmente convertimos todas las variables fecha en formado date
Colombia23$fecha_reporte_web=lubridate::dmy(Colombia23$fecha_reporte_web)
Colombia23$fecha_de_notificaci_n=lubridate::dmy(Colombia23$fecha_de_notificaci_n)
Colombia23$fecha_inicio_sintomas=lubridate::dmy(Colombia23$fecha_inicio_sintomas)
Colombia23$fecha_diagnostico=lubridate::dmy(Colombia23$fecha_diagnostico)
Colombia23$fecha_recuperado=lubridate::dmy(Colombia23$fecha_recuperado)
Colombia23$fecha_muerte=lubridate::dmy(Colombia23$fecha_muerte)
YA ESTA LISTA LA BASE !!!!
Este un trabajo que demanda mucho tiempo, pero que es necesario para tener una buena calidad en los datos. Cuando la base esta bien, podemos continuar con los demás procesos y también guardar la base transformada para una posterior procesamiento
En este caso la se guarda en formato csv
write_csv(Colombia, "data/Colombia23.csv")
o en formato RDS
saveRDS(Colombia23, file = "data/Colombia.RDS")
LISITO !!!!
TENEMOS LA BASE DEL COVID.19 ACTUALIZADA Y ARREGLADA
En caso de querer seleccionar una parte de la data, por ejemplo los datos de CALI utilizamos en siguiente código
Cali=Colombia23[Colombia23$ciudad_municipio_nom=="CALI",]
Valle=subset(Colombia23, departamento=="76")
library(stringr)
texto <- "probabilidad y estadística es importante en la formación de todo profesional"
str_to_upper(texto)
[1] "PROBABILIDAD Y ESTADÍSTICA ES IMPORTANTE EN LA FORMACIÓN DE TODO PROFESIONAL"
#[1] "PROBABILIDAD Y ESTADISTICA ES UNA ASIGNATURA IMPORTANTE EN LA FORMACIÓN DE TODO PROFESIONAL"
str_to_lower(texto)
[1] "probabilidad y estadística es importante en la formación de todo profesional"
#[1] "probabilidad y estadística es una asignatura importante en la formación de todo profesional"
str_to_title(texto)
[1] "Probabilidad Y Estadística Es Importante En La Formación De Todo Profesional"
#[1] "Probabilidad Y Estadística Es Una Asignatura Importante En La Formación De Todo Profesional"
str_to_sentence(texto)
[1] "Probabilidad y estadística es importante en la formación de todo profesional"
#[1] "Probabilidad y estadística es una asignatura importante en la formación de todo profesional"
install.packages("tidyverse") # instalacion de paquete para manejo de datos
library(tidyverse) # libreria de librerias util en el manejo de datos
install.packages("RSocrata", dependencies = TRUE) # instalación de paquete RSocrata
library(RSocrata) # llamado de libreria
token <- "zxMsD6eXc0zlEMryRGW87Hwrz" # token
Colombia <- read.socrata("https://www.datos.gov.co/resource/gt2j-8ykr.json", app_token = token) # lectura de manera remota
# adecuación de la base de datos
Colombia$edad=as.integer(Colombia$edad) # convertir en entoro la variable edad
Colombia$sexo=str_to_lower(Colombia$sexo) # pasar a minusculas todos valores de la variable sexo
Colombia$estado=str_to_lower(Colombia$estado) # pasar a minusculas todos lo valores de la variable estado
Colombia$estado[Colombia$estado=="n/a"]=NA # cambiar el valor n/a por NA - valores faltantes
Colombia$recuperado=str_to_lower(Colombia$recuperado) # pasar a minusculas todos los valores de la variable recuperado
Colombia$recuperado[Colombia$recuperado=="n/a"]=NA
# seleccion de bases
Colombia22=subset(Colombia, Colombia$fecha_reporte_web>="2022-01-01") # data del 2022
Colombia21=subset(Colombia, Colombia$fecha_reporte_web>="2021-01-01" & Colombia$fecha_reporte_web<"2022-01-01") # data de 2021
Colombia20=subset(Colombia, Colombia$fecha_reporte_web>="2020-01-01" & Colombia$fecha_reporte_web<"2021-01-01") # data de 2020
Valle22=subset(Colombia22, departamento=="76") # data del valle del cauca de 2022
Cali22= subset(Colombia22, ciudad_municipio_nom=="CALI") # data de cali de 2022
table(Colombia22$estado)
table(Colombia21$estado)
table(Colombia20$estado)
summarytools::freq(Colombia22$estado, cumul = F)
summarytools::freq(Colombia21$estado, cumul = F)
summarytools::freq(Colombia20$estado, cumul = F)
summarytools::descr(Colombia22$edad)
saveRDS(Colombia, file = "data/Colombia.RDS") # guardar base con modificaciones
#-----------------------------------------------------