A continuación se presenta el reporte de Atención Ciudadana con corte de XXXX.
Escribir pƔrrafo introductorio acerca del objetivo del reporte
#Limpiar el ambiente de trabajo
rm(list=ls())
#Cargar datos (modificar aqui)
#datos <- read.csv("base.csv")
datos <- data("cms_patient_care"); datos <- cms_patient_care
#Vista preliminar
#head(datos,3)
#str(datos)
#names(datos)
Trabajar con los NA
# Verificar y manejar valores faltantes
sum(is.na(datos))
## [1] 1
datos_limpios <- na.omit(datos)
# Convertir tipos de variables si es necesario
#datos_limpios <- datos_limpios %>%
# mutate_if(is.character, as.factor)
Decriptivos general
# Resumen general
summary(datos_limpios)
## ccn facility_name measure_abbr score
## Length:251 Length:251 Length:251 Min. : 16.00
## Class :character Class :character Class :character 1st Qu.: 99.05
## Mode :character Mode :character Mode :character Median :100.00
## Mean :194.82
## 3rd Qu.:247.50
## Max. :694.00
## type
## Length:251
## Class :character
## Mode :character
##
##
##
# Dimensiones del dataset
dim(datos_limpios)
## [1] 251 5
AnƔlisis por variables
# 1. Seleccionar variables numƩricas
vars_numericas <- select_if(datos_limpios, is.numeric)
# 2. Calcular estadĆsticos
estadisticos_basicos <- psych::describe(vars_numericas)
# 3. Crear tabla transpuesta y formateada
tabla_final <- estadisticos_basicos %>%
select(n, mean, sd, min, median, max, skew, kurtosis) %>%
t() %>%
as.data.frame() %>%
round(2) %>%
mutate(
EstadĆstico = c("n", "Media", "Desviación EstĆ”ndar", "MĆnimo",
"Mediana", "MĆ”ximo", "AsimetrĆa", "Curtosis"),
.before = 1) %>%
rename(Valor = score)
# 5. Mostrar tabla con formato mejorado
tabla_final %>%
kable(
caption = "**Tabla 1. EstadĆsticos Descriptivos**",
digits = 2,
row.names = FALSE,
format.args = list(decimal.mark = ".")) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE,
position = "center",
font_size = 12)
| EstadĆstico | Valor |
|---|---|
| n | 251.00 |
| Media | 194.82 |
| Desviación EstÔndar | 167.43 |
| MĆnimo | 16.00 |
| Mediana | 100.00 |
| MƔximo | 694.00 |
| AsimetrĆa | 1.50 |
| Curtosis | 1.10 |
Variables categóricas
# Seleccionar variables categóricas
vars_categoricas <- select_if(datos_limpios, is.character)
# Frecuencias y proporciones
for(var in names(vars_categoricas)) {
cat("\n=== Frecuencias de", var, "===\n")
print(table(datos_limpios[[var]]))
print(prop.table(table(datos_limpios[[var]])))}
##
## === Frecuencias de ccn ===
##
## 011500 011501 011502 011503 011505 011506 011508 011510 011511 011512 011513
## 18 18 18 18 18 18 18 17 18 18 18
## 011514 011516 011517
## 18 18 18
##
## 011500 011501 011502 011503 011505 011506 011508
## 0.07171315 0.07171315 0.07171315 0.07171315 0.07171315 0.07171315 0.07171315
## 011510 011511 011512 011513 011514 011516 011517
## 0.06772908 0.07171315 0.07171315 0.07171315 0.07171315 0.07171315 0.07171315
##
## === Frecuencias de facility_name ===
##
## BAPTIST HOSPICE COMFORT CARE COASTAL HOSPICE - BALDWIN
## 18 18
## CULLMAN REGIONAL HOSPICE HOSPICE FAMILY CARE
## 17 18
## HOSPICE OF LIMESTONE COUNTY HOSPICE OF THE VALLEY, INC
## 18 18
## HOSPICE OF WEST ALABAMA SAAD HOSPICE SERVICES
## 18 18
## SHEPHERD'S COVE HOSPICE SOUTHERNCARE NEW BEACON - JASPER
## 18 18
## SOUTHERNCARE NEW BEACON N. BIRMINGHAM SOUTHERNCARE NEW BEACON OF ANNISTON
## 18 18
## SOUTHERNCARE NEW BEACON SCOTTSBORO ST VINCENT'S HOSPICE
## 18 18
##
## BAPTIST HOSPICE COMFORT CARE COASTAL HOSPICE - BALDWIN
## 0.07171315 0.07171315
## CULLMAN REGIONAL HOSPICE HOSPICE FAMILY CARE
## 0.06772908 0.07171315
## HOSPICE OF LIMESTONE COUNTY HOSPICE OF THE VALLEY, INC
## 0.07171315 0.07171315
## HOSPICE OF WEST ALABAMA SAAD HOSPICE SERVICES
## 0.07171315 0.07171315
## SHEPHERD'S COVE HOSPICE SOUTHERNCARE NEW BEACON - JASPER
## 0.07171315 0.07171315
## SOUTHERNCARE NEW BEACON N. BIRMINGHAM SOUTHERNCARE NEW BEACON OF ANNISTON
## 0.07171315 0.07171315
## SOUTHERNCARE NEW BEACON SCOTTSBORO ST VINCENT'S HOSPICE
## 0.07171315 0.07171315
##
## === Frecuencias de measure_abbr ===
##
## beliefs_addressed composite_process dyspena_treatment dyspnea_screening
## 28 28 28 28
## opioid_bowel pain_assessment pain_screening treat_pref
## 27 28 28 28
## visits_imminent
## 28
##
## beliefs_addressed composite_process dyspena_treatment dyspnea_screening
## 0.1115538 0.1115538 0.1115538 0.1115538
## opioid_bowel pain_assessment pain_screening treat_pref
## 0.1075697 0.1115538 0.1115538 0.1115538
## visits_imminent
## 0.1115538
##
## === Frecuencias de type ===
##
## denominator observed
## 126 125
##
## denominator observed
## 0.501992 0.498008
# Histogramas para variables numƩricas
for(col in names(vars_numericas)) {
print(
ggplot(datos_limpios, aes(x = .data[[col]])) +
geom_histogram(fill = "steelblue", alpha = 0.7, bins = 30) +
labs(title = paste("Distribución de", col),
x = col, y = "Frecuencia") +
theme_minimal()
)
}
# Boxplots
for(col in names(vars_numericas)) {
print(
ggplot(datos_limpios, aes(y = .data[[col]])) +
geom_boxplot(fill = "lightgreen", alpha = 0.7) +
labs(title = paste("Boxplot de", col),
y = col) +
theme_minimal()
)
}
# GrÔficos de barras para categóricas (primeras 3 variables)
cat_vars <- names(vars_categoricas)[1:min(3, length(names(vars_categoricas)))]
for(var in cat_vars) {
print(
ggplot(datos_limpios, aes(x = .data[[var]])) +
geom_bar(fill = "coral", alpha = 0.7) +
labs(title = paste("Frecuencia de", var),
x = var, y = "Conteo") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
)
}
#3if(ncol(vars_numericas) > 1) {
# cor_matrix <- cor(vars_numericas, use = "complete.obs")
# Visualización con heatmap
#library(corrplot)
#corrplot(cor_matrix, method = "color", type = "upper",
# tl.col = "black", tl.srt = 45)