Code
library(tidyverse)
library(janitor)
library(readxl)
library(dplyr)
library(readr)
library(stringr)
library(lubridate)Desarrollar habilidades para identificar si una base de datos cumple con los principios de “tidy data” (datos ordenados) y justificar adecuadamente el diagnóstico realizado.
library(tidyverse)
library(janitor)
library(readxl)
library(dplyr)
library(readr)
library(stringr)
library(lubridate)df_nacidos <- read_csv("tablas/Nacidos_Hospital_C_sar_Uribe_Piedrahita_Caucasia_20250319.csv")
df_nacidos2.1 En la tabla cada columna representa una variable claramente identificable: departamento, municipio, area, sexo, peso, talla, fecha, tiempo de gestación, numero de control, tipo de parto, multiplicidad, edad madre, edad padre. cada columna representa un atributo unico de la observación.
2.2 En la tabla podemos observar que cada fila representa el registro de un recién nacido, con valores únicos para cada variable. cada fila es una observación independiente.
2.3 Aquí todas las filas representan nacimientos en un hospital específico. La tabla representa una única unidad de análisis.
En este casos no es necesario tranformar la tabla ya que cumple con las caracteristicas de una tablas ordenada o principios de tidy data.
df_area <- read_csv("tablas/Areas_cultivadas_y_produccion_agr_cola_en_Antioquia_desde_1990-2022_20250319.csv")
df_area2.1 En esta tabla podemos ver que las varibles son identificables ya que cada columna tiene un atributo unico como lo son: tipo, rubro, subregion, año, municipio, area total, area de produccion, volumen de produccion. estas son las variables que se identifican y que cumplenm con esta primera condicion.
2.2 En la tabla se puede observar que cada fila especifiaca un tipo de cultivo en las diferentes subregione de antioquia lo cual indica que cumple ya que cada fila es una observacion diferente a las otras.
2.3 ahora cada dato especifico se encuentra en una celda unica lo cual nos indica que tambien cumple el tercer principio de la dity data.
3.1 En nuestra opinion los datos necesitan un ordenamiento de columnas ya que se podria leer de una mejor forma el orden propuesto por nosotros seria: subregion, municipio, año, tipo, rubro, area total, area de produccion, volumnen de produccion.
df_area_ordenado <-
df_area |>
select(Año, Subregion, Municipio, Tipo, Rubro, `Área Total`, `Área Producción`, `Volumen Producción`) |>
rename(
año = Año,
tipo = Tipo,
rubro = Rubro,
subregion = Subregion,
municipio = Municipio,
'area total' = `Área Total`,
area_produccion = `Área Producción`,
vol_produccion = `Volumen Producción`
) |> select(-c('area total'))
df_area_ordenadodf_bovinos <- read_csv("tablas/Inventario_anual_de_Bovinos_en_Antioquia_desde_2000-2022_20250320.csv")
df_bovinos2.1 Como se puede observar tenemos 8 variables que pueden agrupar en una columna las cuales son BOVINOS Cría Macho (< DE 12), BOVINOS Novillo Levante (12-24),BOVINOS Novillo Ceba ( 24-36),BOVINOS Toros (> 36) BOVINOS Cría Hembra (< DE 12),BOVINOS Novilla Levante ( 12-24),BOVINOS Novilla Vientre ( 24-36) los cuales se les puede agregar dentro de una misma variable llamada “proposito” para establecer a que tipo de animal nos referimos, es decir, levante,cria,etc. tambien decidimos quitar algunas columnas que teniendo en cuenta que los datos no eran necesarias como lo son el total(estos se pueden obtener mediante R ), los pastos y peso.
2.2 Sin tener en cuenta el problema anterior las filas se encontraban cumpliendo con los principios de tidy data despues podemos hacer los arreglos para pasar de ancho a largo
2.3 El principio se cumple sin tener encuenta el problema de variables, ya que al no cumplirse el primer principios los demas se dejan de cumplir asi que mas adelante le daremos una solucion a este problema
df_bovinos <- read_csv("tablas/Inventario_anual_de_Bovinos_en_Antioquia_desde_2000-2022_20250320.csv") |>
select(-c('TOTAL MACHOS', 'TOTAL HEMBRAS', 'Total Bovinos', 'Pasto Corte (ha)', 'Pasto Natural (ha)', 'Pasto Mejorado (ha)', 'Pasto Forrajero (ha)', 'Pasto Mejorado (ha)', 'Pasto Forrajero (ha)', 'Pasto Forrajero (ha)', 'Silvopastoril (ha)', 'Total Pastos (ha)')) |> pivot_longer(-c(AÑO, SUBREGION, RUBRO, MUNICIPIO),
names_to = "variables",
values_to = "bovinos") |> mutate(
variables = str_trim(variables),
variables = str_remove(variables, "(DE)"),
sexo = str_extract(variables, "(Macho|Novillo|Toros|Hembra|Novilla|Vaca)+"),
edad = str_extract(variables, "(\\d+-\\d+|>\\s?\\d+|<\\s?\\s?\\d+)"),
variables = str_remove(variables, "(< 12|\\d+-\\d+|>\\s?36)"),
variables = str_remove(variables, "\\(.*\\)"),
sexo = recode(sexo,
"Macho" = "Macho",
"Novillo" = "Macho",
"Toros" = "Macho",
"Hembra" = "Hembra",
"Novilla" = "Hembra",
"Vaca" = "Hembra")
)
df_bovinosdf_departamentos <- read_csv("tablas/Departamentos_y_municipios_de_Colombia_20250321.csv")
df_departamentos2.1 Cada variable forma una columna y estan de manera organizada, lo cual lo hace facil de identificar u observar
2.2 Cada obaservacion forma una fila l cual detalla de forma correcta los datos proporcionados
2.3 Como ya se habia dado a conocer anteriormente, todos estos principios anterioresw se cumplen y en este ultimo tambien; ya que en cada celda hay un dato diferente y unico
El orden propuesto que puede brindar una mejor lectura de datos es el siguiente: (region, departamento, codigo de departamento, municipio y codigo de municipio)
df_departamentos_ordenados <- read_csv("tablas/Departamentos_y_municipios_de_Colombia_20250321.csv") |> select(REGION, DEPARTAMENTO, 'CÓDIGO DANE DEL DEPARTAMENTO', MUNICIPIO, 'CÓDIGO DANE DEL MUNICIPIO') |> mutate(
REGION = str_remove(REGION, "(- Antioquia)")
)
df_departamentos_ordenadosdf_loteria <- read_csv("tablas/RESULTADOS_PREMIO_MAYOR_LOTERIA_DE_MEDELLIN_20250321.csv")
df_loteria2.1 Cada variable forma una columna y representa variables como fecha de juego, sorteo, numero y serie. no hay datos combinados en una sola columna, por lo cual cumple este criterio
2.2 Cada fila representa un dato unico relevante de manera adecuada
2.3 Este principio es importante por que nos asegura que los datos sean faciles de manipular y analizar lo cual nos permite una facil lectura, por lo cual, se puede concluir de este ejemplo que cada celda contiene un solo dato por lo cual cumple con este pricipio
3.1 teniendo en cuenta que cumple con los principios de tidy data no nececita mejoras evidentes aun asi se puede re-organizar de una manera mas factible al entendimiento de esta.
read_csv("tablas/RESULTADOS_PREMIO_MAYOR_LOTERIA_DE_MEDELLIN_20250321.csv") |> select('FECHA DE JUEGO', SORTEO, SERIE, NÚMERO) |> mutate(
'HORA DE JUEGO' = str_extract(`FECHA DE JUEGO`, "(\\d{1,2}:\\d{2}:\\d{2} [APap][Mm])"),
'FECHA DE JUEGO' = str_remove('FECHA DE JUEGO', "(\\d{1,2}:\\d{2}:\\d{2} [APap][Mm])")
)Fin.