Tabla de Contenidos
Script en R
library(readxl)
ense<-ENSE_2017_Trabajo_Final2
summary (ense)
#RECODIFICAR Y DEFINIR VARIABLES
#SEXOa
ense$SEXOa <- factor(ense$SEXOa, labels = c("hombre", "mujer"))
#EDADa
#convertir a numerica
ense$EDADa <- as.numeric(as.character(ense$EDADa))
summary(ense$EDADa)
##SITUACIÓN LABORAL - A11_i
ense$A11_i <- factor(ense$A11_i, labels = c("Trabajando", "En desempleo", "Jubilado/a,prejubilado/a", "Estudiando","Incapacitado/a para trabajar","Las labores del hogar","Otros"))
##E1_1 PAIS DE NACIMIENTO
#1 Nacidos en España 2 Nacidos en el extranjero 8 No sabe 9 No contesta
ense$E1_1 <- factor(ense$E1_1, labels = c("Nacidos en España", "Nacidos en el extranjero"))
summary(ense$E1_1)
str(ense$E1_1)
##G21 ESTADO DE SALUD
#1 Muy bueno 2 Bueno 3 Regular 4 Malo 5 Muy malo
ense$G21 <- factor(ense$G21, labels = c("Muy bueno", "Bueno", "Regular", "Malo", "Muy malo"))
summary(ense$G21)
str(ense$G21)
# G25c_1 TENSION ALTA 1 Sí, 2 No,8 No sabe, 9 No contesta
ense$G25c_1 <- factor(ense$G25c_1, labels = c("Sí", "No", "No sabe"))
str(ense$G25c_1)
summary(ense$G25c_1)
#Imputación de NA
ense$G25c_1[is.na(ense$G25c_1)]<-"No"
summary(ense$G25c_1)
str(ense$G25c_1)
table (ense$G25c_1)
# G25c_2 IAM 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$G25c_2)
ense$G25c_2 <- factor(ense$G25c_2, labels = c("Sí", "No"))
str(ense$G25c_2)
summary(ense$G25c_2)
#Imputación de NA
ense$G25c_2[is.na(ense$G25c_2)]<-"No"
summary(ense$G25c_2)
str(ense$G25c_2)
table (ense$G25c_2)
# G25c_11 ENF NEUMO 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$G25c_11)
ense$G25c_11 <- factor(ense$G25c_11, labels = c("Sí", "No"))
str(ense$G25c_11)
summary(ense$G25c_11)
#Imputación de NA
ense$G25c_11[is.na(ense$G25c_11)]<-"No"
summary(ense$G25c_11)
str(ense$G25c_11)
table (ense$G25c_11)
# G25c_12 DM 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$G25c_12)
ense$G25c_12 <- factor(ense$G25c_12, labels = c("Sí", "No"))
str(ense$G25c_12)
summary(ense$G25c_12)
#Imputación de NA
ense$G25c_12[is.na(ense$G25c_12)]<-"No"
summary(ense$G25c_12)
str(ense$G25c_12)
table (ense$G25c_12)
# G25c_26 TUMORES MALIGNOS 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$G25c_26)
ense$G25c_26 <- factor(ense$G25c_26, labels = c("Sí", "No", "No sabe"))
str(ense$G25c_26)
summary(ense$G25c_26)
#Imputación de NA
ense$G25c_26[is.na(ense$G25c_26)]<-"No"
summary(ense$G25c_26)
str(ense$G25c_26)
table (ense$G25c_26)
##GHQ12 MORBILIDAD PSIQUICA --> numerica
names(ense)[names(ense) == "GHQ-12"] <- "GHQ12"
summary(ense$GHQ12)
str (ense$GHQ12)
table (ense$GHQ12)
##recategorizar variable GHQ12 --> MORBILIDAD PSICOLÓGICA
ense<-within(ense,{
GHQ12_rec<-NA
GHQ12_rec[GHQ12<=2]<-"No morbilidad psíquica"
GHQ12_rec[GHQ12>2]<-"Sí morbilidad psíquica"
})
table (ense$GHQ12_rec)
summary(ense$GHQ12_rec)
str (ense$GHQ12_rec)
ense$GHQ12_rec <- factor(ense$GHQ12_rec, labels = c("No morbilidad psíquica", "Sí morbilidad psíquica"))
table (ense$GHQ12_rec)
##N48 Tiempo desde ultima consulta al medico 4 cat
table (ense$N48)
ense$N48 <- factor(ense$N48, labels = c("Ultimas 4 sem", "4sem-12meses", "Más de 12m", "Nunca"))
table (ense$N48)
##O78 Utilización de SU en 12 meses 2 cat
table (ense$O78)
ense$O78 <- factor(ense$O78, labels = c("Sí", "No"))
table (ense$O78)
##P87_2a CONSUMO MEDICINAS DOLOR --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_2a)
ense$P87_2a <- factor(ense$P87_2a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_2a)
summary(ense$P87_2a)
str (ense$P87_2a)
#imputacion
ense$P87_2a[is.na(ense$P87_2a)]<-"No"
summary(ense$P87_2a)
str(ense$P87_2a)
table (ense$P87_2a)
##P87_7a CONSUMO MEDICINAS TRANQUILIZANTES --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_7a)
ense$P87_7a <- factor(ense$P87_7a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_7a)
summary(ense$P87_7a)
str (ense$P87_7a)
#imputacion
ense$P87_7a[is.na(ense$P87_7a)]<-"No"
summary(ense$P87_7a)
##P87_12a CONSUMO MEDICINAS TA --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_12a)
ense$P87_12a <- factor(ense$P87_12a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_12a)
summary(ense$P87_12a)
str (ense$P87_12a)
#imputacion
ense$P87_12a[is.na(ense$P87_12a)]<-"No"
summary(ense$P87_12a)
##P87_14a CONSUMO MEDICINAS ANTIDEPRESIVOS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_14a)
ense$P87_14a <- factor(ense$P87_14a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_14a)
summary(ense$P87_14a)
str (ense$P87_14a)
#imputacion
ense$P87_14a[is.na(ense$P87_14a)]<-"No"
summary(ense$P87_14a)
##P87_15a CONSUMO MEDICINAS NO EMBARAZO --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_15a)
ense$P87_15a <- factor(ense$P87_15a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_15a)
summary(ense$P87_15a)
str (ense$P87_15a)
#imputacion
ense$P87_15a[is.na(ense$P87_15a)]<-"No"
summary(ense$P87_15a)
##P87_17a CONSUMO MEDICINAS ADELGAZAR --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_17a)
ense$P87_17a <- factor(ense$P87_17a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_17a)
summary(ense$P87_17a)
str (ense$P87_17a)
#imputacion
ense$P87_17a[is.na(ense$P87_17a)]<-"No"
summary(ense$P87_17a)
##P87_18a CONSUMO MEDICINAS COLESTEROL --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_18a)
ense$P87_18a <- factor(ense$P87_18a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_18a)
summary(ense$P87_18a)
str (ense$P87_18a)
#imputacion
ense$P87_18a[is.na(ense$P87_18a)]<-"No"
summary(ense$P87_18a)
##P87_19a CONSUMO MEDICINAS DM --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_19a)
ense$P87_19a <- factor(ense$P87_19a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_19a)
summary(ense$P87_19a)
str (ense$P87_19a)
#imputacion
ense$P87_19a[is.na(ense$P87_19a)]<-"No"
summary(ense$P87_19a)
##P87_21a CONSUMO MEDICINAS HOMEOPATICOS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_21a)
ense$P87_21a <- factor(ense$P87_21a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_21a)
summary(ense$P87_21a)
str (ense$P87_21a)
#imputacion
ense$P87_21a[is.na(ense$P87_21a)]<-"No"
summary(ense$P87_21a)
##P87_22a CONSUMO MEDICINAS NATURISTAS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
table (ense$P87_22a)
ense$P87_22a <- factor(ense$P87_22a, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$P87_22a)
summary(ense$P87_22a)
str (ense$P87_22a)
#imputacion
ense$P87_22a[is.na(ense$P87_22a)]<-"No"
summary(ense$P87_22a)
##Q88 VACUNA GRIPE
table (ense$Q88)
ense$Q88 <- factor(ense$Q88, labels = c("Sí", "No"))
table (ense$Q88)
##Q103 CITOLOGIA
table (ense$Q103)
ense$Q103 <- factor(ense$Q103, labels = c("Sí", "No","No sabe", "No contesta"))
table (ense$Q103)
#imputacion
ense$Q103[is.na(ense$Q103)]<-"No"
summary(ense$Q103)
##R108_1 FALTA ATENCION MEDICA POR PROB ECONOMICOS
#1 Sí, 2 No, 3 No lo he necesitado, 8 No sabe, 9 No contesta
table (ense$R108_1)
ense$R108_1 <- factor(ense$R108_1, labels = c("Sí", "No", "No lo he necesitado", "No sabe", "No contesta"))
summary (ense$R108_1)
str(ense$R108_1)
table (ense$R108_1)
##T112 ACTIVIDAD FÍSICA
#1 No hago ejercicio. El tiempo libre lo ocupo de forma casi completamente sedentaria 2 Hago alguna actividad física o deportiva ocasional 3 Hago actividad física varias veces al mes 4 Hago entrenamiento deportivo o físico varias veces a la semana 8 No sabe 9 No contesta
ense$T112 <- factor(ense$T112, labels = c("No hago ejercicio", "Alguna actividad física", "Varias veces al mes", "Varias veces a la semana", "No sabe", "No contesta"))
str (ense$T112)
summary(ense$T112)
table (ense$T112)
##V121 Fuma 6 cat
table (ense$V121)
ense$V121 <- factor(ense$V121, labels = c("A diario", "No a diario", "Ha fumado antes", "Nunca ha fumado de forma habitual", "No sabe", "No contesta"))
table (ense$V121)
##Y133 cuidado personas mayores 4 cat
table (ense$Y133)
ense$Y133 <- factor(ense$Y133, labels = c("Sí", "No", "No sabe", "No contesta"))
table (ense$Y133)
summary (ense)
Resumen explicativo del script
He abordado el análisis de los datos de la Encuesta Nacional de Salud de España (ENSE) del año 2017 con un enfoque meticuloso en R, utilizando mi experiencia en la manipulación y análisis de datos. Comencé por cargar el conjunto de datos ENSE_2017_Trabajo_Final2 en un dataframe llamado ense, usando la biblioteca readxl que facilita la importación de datos de Excel. Luego, ejecuté un summary(ense) para tener una visión general y rápida del dataframe.
Mi siguiente paso fue la recodificación y definición de variables clave, con el fin de facilitar el análisis posterior. Por ejemplo, transformé la variable SEXOa en un factor con etiquetas más descriptivas («hombre», «mujer»). Para la variable EDADa, convertí los valores a numéricos, dado que originalmente estaban como caracteres.
Me concentré también en otras variables importantes como la situación laboral (A11_i), país de nacimiento (E1_1), estado de salud (G21), y varias variables relacionadas con condiciones de salud específicas como tensión alta (G25c_1), enfermedad cardíaca (G25c_2), neumonía (G25c_11), diabetes (G25c_12), y tumores malignos (G25c_26). Cada una de estas las convertí en factores con etiquetas claras y, en algunos casos, imputé valores ‘No’ en lugar de NA para mantener la integridad de los datos.
Además, traté la variable GHQ-12 relacionada con la morbilidad psíquica, renombrándola a GHQ12 para facilitar su manejo y recategorizándola en dos grupos: «No morbilidad psíquica» y «Sí morbilidad psíquica». Esta recategorización es vital para análisis posteriores relacionados con la salud mental.
Incluí también variables sobre el uso de servicios de salud y hábitos de vida, como la última visita al médico (N48), uso de servicios de urgencias (O78), y consumo de diferentes tipos de medicamentos (P87_2a, P87_7a, etc.). Cada una de estas variables fue cuidadosamente convertida en factores con etiquetas apropiadas y, cuando fue necesario, realicé imputaciones para manejar los valores faltantes.
Finalmente, revisé variables sobre prácticas preventivas de salud como la vacunación contra la gripe (Q88), citologías (Q103), y atención médica en función de problemas económicos (R108_1), así como la actividad física (T112) y hábitos de fumar (V121). De nuevo, convertí estas variables en factores y revisé sus resúmenes para asegurarme de que los datos estuvieran correctamente estructurados para análisis más detallados.
Este proceso meticuloso de limpieza y recodificación de datos es crucial para garantizar la precisión y fiabilidad de cualquier análisis estadístico posterior. Con mi experiencia, pude identificar y abordar eficientemente las peculiaridades y desafíos que presentan los conjuntos de datos complejos como el de la ENSE.
Consola del Script en R
library(readxl)
> ense<-ENSE_2017_Trabajo_Final2
> summary (ense)
SEXOa EDADa A11_i E1_1 G21 G25c_1
Length:23089 Length:23089 Length:23089 Length:23089 Length:23089 Length:23089
Class :character Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character
G25c_2 G25c_11 G25c_12 G25c_26 GHQ-12 N48
Length:23089 Length:23089 Length:23089 Length:23089 Min. : 0.000 Length:23089
Class :character Class :character Class :character Class :character 1st Qu.: 0.000 Class :character
Mode :character Mode :character Mode :character Mode :character Median : 0.000 Mode :character
Mean : 1.462
3rd Qu.: 2.000
Max. :12.000
O78 P87_2a P87_7a P87_12a P87_14a P87_15a
Length:23089 Length:23089 Length:23089 Length:23089 Length:23089 Length:23089
Class :character Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character
P87_17a P87_18a P87_19a P87_21a P87_22a Q88
Length:23089 Length:23089 Length:23089 Length:23089 Length:23089 Length:23089
Class :character Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character
Q103 R108_1 T112 V121 Y133
Length:23089 Length:23089 Length:23089 Length:23089 Length:23089
Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character
>
> #RECODIFICAR Y DEFINIR VARIABLES
>
> #SEXOa
> ense$SEXOa <- factor(ense$SEXOa, labels = c("hombre", "mujer"))
>
> #EDADa
> #convertir a numerica
> ense$EDADa <- as.numeric(as.character(ense$EDADa))
> summary(ense$EDADa)
Min. 1st Qu. Median Mean 3rd Qu. Max.
15.00 39.00 53.00 53.44 68.00 103.00
>
> ##SITUACIÓN LABORAL - A11_i
> ense$A11_i <- factor(ense$A11_i, labels = c("Trabajando", "En desempleo", "Jubilado/a,prejubilado/a", "Estudiando","Incapacitado/a para trabajar","Las labores del hogar","Otros"))
>
> ##E1_1 PAIS DE NACIMIENTO
> #1 Nacidos en España 2 Nacidos en el extranjero 8 No sabe 9 No contesta
> ense$E1_1 <- factor(ense$E1_1, labels = c("Nacidos en España", "Nacidos en el extranjero"))
> summary(ense$E1_1)
Nacidos en España Nacidos en el extranjero
20846 2243
> str(ense$E1_1)
Factor w/ 2 levels "Nacidos en España",..: 1 2 1 1 1 1 1 1 2 1 ...
>
> ##G21 ESTADO DE SALUD
> #1 Muy bueno 2 Bueno 3 Regular 4 Malo 5 Muy malo
> ense$G21 <- factor(ense$G21, labels = c("Muy bueno", "Bueno", "Regular", "Malo", "Muy malo"))
> summary(ense$G21)
Muy bueno Bueno Regular Malo Muy malo
4190 11145 5531 1724 499
> str(ense$G21)
Factor w/ 5 levels "Muy bueno","Bueno",..: 3 2 4 2 2 2 3 2 2 3 ...
>
> # G25c_1 TENSION ALTA 1 Sí, 2 No,8 No sabe, 9 No contesta
> ense$G25c_1 <- factor(ense$G25c_1, labels = c("Sí", "No", "No sabe"))
> str(ense$G25c_1)
Factor w/ 3 levels "Sí","No","No sabe": 1 NA NA NA 1 NA NA NA NA NA ...
> summary(ense$G25c_1)
Sí No No sabe NA's
6244 114 2 16729
> #Imputación de NA
> ense$G25c_1[is.na(ense$G25c_1)]<-"No"
> summary(ense$G25c_1)
Sí No No sabe
6244 16843 2
> str(ense$G25c_1)
Factor w/ 3 levels "Sí","No","No sabe": 1 2 2 2 1 2 2 2 2 2 ...
> table (ense$G25c_1)
Sí No No sabe
6244 16843 2
>
> # G25c_2 IAM 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$G25c_2)
1 2
530 16
> ense$G25c_2 <- factor(ense$G25c_2, labels = c("Sí", "No"))
> str(ense$G25c_2)
Factor w/ 2 levels "Sí","No": NA NA NA NA NA NA NA NA NA NA ...
> summary(ense$G25c_2)
Sí No NA's
530 16 22543
> #Imputación de NA
> ense$G25c_2[is.na(ense$G25c_2)]<-"No"
> summary(ense$G25c_2)
Sí No
530 22559
> str(ense$G25c_2)
Factor w/ 2 levels "Sí","No": 2 2 2 2 2 2 2 2 2 2 ...
> table (ense$G25c_2)
Sí No
530 22559
>
> # G25c_11 ENF NEUMO 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$G25c_11)
1 2
1154 32
> ense$G25c_11 <- factor(ense$G25c_11, labels = c("Sí", "No"))
> str(ense$G25c_11)
Factor w/ 2 levels "Sí","No": NA NA NA NA NA NA NA NA NA NA ...
> summary(ense$G25c_11)
Sí No NA's
1154 32 21903
> #Imputación de NA
> ense$G25c_11[is.na(ense$G25c_11)]<-"No"
> summary(ense$G25c_11)
Sí No
1154 21935
> str(ense$G25c_11)
Factor w/ 2 levels "Sí","No": 2 2 2 2 2 2 2 2 2 2 ...
> table (ense$G25c_11)
Sí No
1154 21935
>
> # G25c_12 DM 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$G25c_12)
1 2
2266 9
> ense$G25c_12 <- factor(ense$G25c_12, labels = c("Sí", "No"))
> str(ense$G25c_12)
Factor w/ 2 levels "Sí","No": 1 NA NA NA NA NA NA NA NA NA ...
> summary(ense$G25c_12)
Sí No NA's
2266 9 20814
> #Imputación de NA
> ense$G25c_12[is.na(ense$G25c_12)]<-"No"
> summary(ense$G25c_12)
Sí No
2266 20823
> str(ense$G25c_12)
Factor w/ 2 levels "Sí","No": 1 2 2 2 2 2 2 2 2 2 ...
> table (ense$G25c_12)
Sí No
2266 20823
>
> # G25c_26 TUMORES MALIGNOS 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$G25c_26)
1 2 8
1146 39 1
> ense$G25c_26 <- factor(ense$G25c_26, labels = c("Sí", "No", "No sabe"))
> str(ense$G25c_26)
Factor w/ 3 levels "Sí","No","No sabe": NA NA 1 NA NA NA NA NA NA 1 ...
> summary(ense$G25c_26)
Sí No No sabe NA's
1146 39 1 21903
> #Imputación de NA
> ense$G25c_26[is.na(ense$G25c_26)]<-"No"
> summary(ense$G25c_26)
Sí No No sabe
1146 21942 1
> str(ense$G25c_26)
Factor w/ 3 levels "Sí","No","No sabe": 2 2 1 2 2 2 2 2 2 1 ...
> table (ense$G25c_26)
Sí No No sabe
1146 21942 1
>
> ##GHQ12 MORBILIDAD PSIQUICA --> numerica
> names(ense)[names(ense) == "GHQ-12"] <- "GHQ12"
> summary(ense$GHQ12)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000 0.000 0.000 1.462 2.000 12.000
> str (ense$GHQ12)
num [1:23089] 6 0 6 0 0 0 0 0 3 2 ...
> table (ense$GHQ12)
0 1 2 3 4 5 6 7 8 9 10 11 12
14373 2651 1664 962 664 558 427 375 293 259 258 254 351
>
> ##recategorizar variable GHQ12 --> MORBILIDAD PSICOLÓGICA
> ense<-within(ense,{
+ GHQ12_rec<-NA
+ GHQ12_rec[GHQ12<=2]<-"No morbilidad psíquica"
+ GHQ12_rec[GHQ12>2]<-"Sí morbilidad psíquica"
+ })
> table (ense$GHQ12_rec)
No morbilidad psíquica Sí morbilidad psíquica
18688 4401
> summary(ense$GHQ12_rec)
Length Class Mode
23089 character character
> str (ense$GHQ12_rec)
chr [1:23089] "Sí morbilidad psíquica" "No morbilidad psíquica" "Sí morbilidad psíquica" "No morbilidad psíquica" ...
> ense$GHQ12_rec <- factor(ense$GHQ12_rec, labels = c("No morbilidad psíquica", "Sí morbilidad psíquica"))
> table (ense$GHQ12_rec)
No morbilidad psíquica Sí morbilidad psíquica
18688 4401
>
> ##N48 Tiempo desde ultima consulta al medico 4 cat
> table (ense$N48)
1 2 3 4
7120 11956 3972 41
> ense$N48 <- factor(ense$N48, labels = c("Ultimas 4 sem", "4sem-12meses", "Más de 12m", "Nunca"))
> table (ense$N48)
Ultimas 4 sem 4sem-12meses Más de 12m Nunca
7120 11956 3972 41
>
> ##O78 Utilización de SU en 12 meses 2 cat
> table (ense$O78)
1 2
6901 16188
> ense$O78 <- factor(ense$O78, labels = c("Sí", "No"))
> table (ense$O78)
Sí No
6901 16188
>
> ##P87_2a CONSUMO MEDICINAS DOLOR --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_2a)
1 2 8 9
8157 7703 1 2
> ense$P87_2a <- factor(ense$P87_2a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_2a)
Sí No No sabe No contesta
8157 7703 1 2
> summary(ense$P87_2a)
Sí No No sabe No contesta NA's
8157 7703 1 2 7226
> str (ense$P87_2a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 2 2 2 NA 2 NA NA 1 ...
> #imputacion
> ense$P87_2a[is.na(ense$P87_2a)]<-"No"
> summary(ense$P87_2a)
Sí No No sabe No contesta
8157 14929 1 2
> str(ense$P87_2a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 2 2 2 2 2 2 2 1 ...
> table (ense$P87_2a)
Sí No No sabe No contesta
8157 14929 1 2
>
> ##P87_7a CONSUMO MEDICINAS TRANQUILIZANTES --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_7a)
1 2 8 9
3445 12414 1 3
> ense$P87_7a <- factor(ense$P87_7a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_7a)
Sí No No sabe No contesta
3445 12414 1 3
> summary(ense$P87_7a)
Sí No No sabe No contesta NA's
3445 12414 1 3 7226
> str (ense$P87_7a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 2 1 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_7a[is.na(ense$P87_7a)]<-"No"
> summary(ense$P87_7a)
Sí No No sabe No contesta
3445 19640 1 3
>
> ##P87_12a CONSUMO MEDICINAS TA --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_12a)
1 2 8 9
5787 10067 6 3
> ense$P87_12a <- factor(ense$P87_12a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_12a)
Sí No No sabe No contesta
5787 10067 6 3
> summary(ense$P87_12a)
Sí No No sabe No contesta NA's
5787 10067 6 3 7226
> str (ense$P87_12a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_12a[is.na(ense$P87_12a)]<-"No"
> summary(ense$P87_12a)
Sí No No sabe No contesta
5787 17293 6 3
>
> ##P87_14a CONSUMO MEDICINAS ANTIDEPRESIVOS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_14a)
1 2 8 9
1540 14313 6 4
> ense$P87_14a <- factor(ense$P87_14a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_14a)
Sí No No sabe No contesta
1540 14313 6 4
> summary(ense$P87_14a)
Sí No No sabe No contesta NA's
1540 14313 6 4 7226
> str (ense$P87_14a)
Factor w/ 4 levels "Sí","No","No sabe",..: 2 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_14a[is.na(ense$P87_14a)]<-"No"
> summary(ense$P87_14a)
Sí No No sabe No contesta
1540 21539 6 4
>
> ##P87_15a CONSUMO MEDICINAS NO EMBARAZO --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_15a)
1 2 8 9
334 4973 1 2
> ense$P87_15a <- factor(ense$P87_15a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_15a)
Sí No No sabe No contesta
334 4973 1 2
> summary(ense$P87_15a)
Sí No No sabe No contesta NA's
334 4973 1 2 17779
> str (ense$P87_15a)
Factor w/ 4 levels "Sí","No","No sabe",..: NA NA 2 NA NA NA 2 NA NA NA ...
> #imputacion
> ense$P87_15a[is.na(ense$P87_15a)]<-"No"
> summary(ense$P87_15a)
Sí No No sabe No contesta
334 22752 1 2
>
> ##P87_17a CONSUMO MEDICINAS ADELGAZAR --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_17a)
1 2 8 9
32 15824 3 4
> ense$P87_17a <- factor(ense$P87_17a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_17a)
Sí No No sabe No contesta
32 15824 3 4
> summary(ense$P87_17a)
Sí No No sabe No contesta NA's
32 15824 3 4 7226
> str (ense$P87_17a)
Factor w/ 4 levels "Sí","No","No sabe",..: 2 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_17a[is.na(ense$P87_17a)]<-"No"
> summary(ense$P87_17a)
Sí No No sabe No contesta
32 23050 3 4
>
> ##P87_18a CONSUMO MEDICINAS COLESTEROL --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_18a)
1 2 8 9
4124 11727 9 3
> ense$P87_18a <- factor(ense$P87_18a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_18a)
Sí No No sabe No contesta
4124 11727 9 3
> summary(ense$P87_18a)
Sí No No sabe No contesta NA's
4124 11727 9 3 7226
> str (ense$P87_18a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 1 2 1 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_18a[is.na(ense$P87_18a)]<-"No"
> summary(ense$P87_18a)
Sí No No sabe No contesta
4124 18953 9 3
>
> ##P87_19a CONSUMO MEDICINAS DM --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_19a)
1 2 8 9
2030 13827 3 3
> ense$P87_19a <- factor(ense$P87_19a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_19a)
Sí No No sabe No contesta
2030 13827 3 3
> summary(ense$P87_19a)
Sí No No sabe No contesta NA's
2030 13827 3 3 7226
> str (ense$P87_19a)
Factor w/ 4 levels "Sí","No","No sabe",..: 1 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_19a[is.na(ense$P87_19a)]<-"No"
> summary(ense$P87_19a)
Sí No No sabe No contesta
2030 21053 3 3
>
> ##P87_21a CONSUMO MEDICINAS HOMEOPATICOS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_21a)
1 2 8 9
154 15701 5 3
> ense$P87_21a <- factor(ense$P87_21a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_21a)
Sí No No sabe No contesta
154 15701 5 3
> summary(ense$P87_21a)
Sí No No sabe No contesta NA's
154 15701 5 3 7226
> str (ense$P87_21a)
Factor w/ 4 levels "Sí","No","No sabe",..: 2 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_21a[is.na(ense$P87_21a)]<-"No"
> summary(ense$P87_21a)
Sí No No sabe No contesta
154 22927 5 3
>
> ##P87_22a CONSUMO MEDICINAS NATURISTAS --- 1 Sí, 2 No,8 No sabe, 9 No contesta
> table (ense$P87_22a)
1 2 8 9
516 15338 6 3
> ense$P87_22a <- factor(ense$P87_22a, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$P87_22a)
Sí No No sabe No contesta
516 15338 6 3
> summary(ense$P87_22a)
Sí No No sabe No contesta NA's
516 15338 6 3 7226
> str (ense$P87_22a)
Factor w/ 4 levels "Sí","No","No sabe",..: 2 2 2 2 2 NA 2 NA NA 2 ...
> #imputacion
> ense$P87_22a[is.na(ense$P87_22a)]<-"No"
> summary(ense$P87_22a)
Sí No No sabe No contesta
516 22564 6 3
>
> ##Q88 VACUNA GRIPE
> table (ense$Q88)
1 2
5327 17762
> ense$Q88 <- factor(ense$Q88, labels = c("Sí", "No"))
> table (ense$Q88)
Sí No
5327 17762
>
> ##Q103 CITOLOGIA
> table (ense$Q103)
1 2 8 9
9296 3034 153 11
> ense$Q103 <- factor(ense$Q103, labels = c("Sí", "No","No sabe", "No contesta"))
> table (ense$Q103)
Sí No No sabe No contesta
9296 3034 153 11
> #imputacion
> ense$Q103[is.na(ense$Q103)]<-"No"
> summary(ense$Q103)
Sí No No sabe No contesta
9296 13629 153 11
>
> ##R108_1 FALTA ATENCION MEDICA POR PROB ECONOMICOS
> #1 Sí, 2 No, 3 No lo he necesitado, 8 No sabe, 9 No contesta
> table (ense$R108_1)
1 2 3 8 9
525 21797 760 5 2
> ense$R108_1 <- factor(ense$R108_1, labels = c("Sí", "No", "No lo he necesitado", "No sabe", "No contesta"))
> summary (ense$R108_1)
Sí No No lo he necesitado No sabe No contesta
525 21797 760 5 2
> str(ense$R108_1)
Factor w/ 5 levels "Sí","No","No lo he necesitado",..: 2 2 2 2 2 2 2 2 2 2 ...
> table (ense$R108_1)
Sí No No lo he necesitado No sabe No contesta
525 21797 760 5 2
>
> ##T112 ACTIVIDAD FÍSICA
> #1 No hago ejercicio. El tiempo libre lo ocupo de forma casi completamente sedentaria 2 Hago alguna actividad física o deportiva ocasional 3 Hago actividad física varias veces al mes 4 Hago entrenamiento deportivo o físico varias veces a la semana 8 No sabe 9 No contesta
> ense$T112 <- factor(ense$T112, labels = c("No hago ejercicio", "Alguna actividad física", "Varias veces al mes", "Varias veces a la semana", "No sabe", "No contesta"))
> str (ense$T112)
Factor w/ 6 levels "No hago ejercicio",..: 1 1 2 2 3 3 1 1 1 1 ...
> summary(ense$T112)
No hago ejercicio Alguna actividad física Varias veces al mes Varias veces a la semana No sabe
8878 9042 2547 2612 3
No contesta
7
> table (ense$T112)
No hago ejercicio Alguna actividad física Varias veces al mes Varias veces a la semana No sabe
8878 9042 2547 2612 3
No contesta
7
>
> ##V121 Fuma 6 cat
> table (ense$V121)
1 2 3 4 8 9
4903 495 5962 11707 3 19
> ense$V121 <- factor(ense$V121, labels = c("A diario", "No a diario", "Ha fumado antes", "Nunca ha fumado de forma habitual", "No sabe", "No contesta"))
> table (ense$V121)
A diario No a diario Ha fumado antes
4903 495 5962
Nunca ha fumado de forma habitual No sabe No contesta
11707 3 19
>
> ##Y133 cuidado personas mayores 4 cat
> table (ense$Y133)
1 2 8 9
2548 20526 4 11
> ense$Y133 <- factor(ense$Y133, labels = c("Sí", "No", "No sabe", "No contesta"))
> table (ense$Y133)
Sí No No sabe No contesta
2548 20526 4 11
>
> summary (ense)
SEXOa EDADa A11_i E1_1 G21
hombre:10595 Min. : 15.00 Trabajando :9919 Nacidos en España :20846 Muy bueno: 4190
mujer :12494 1st Qu.: 39.00 En desempleo :2487 Nacidos en el extranjero: 2243 Bueno :11145
Median : 53.00 Jubilado/a,prejubilado/a :6608 Regular : 5531
Mean : 53.44 Estudiando :1309 Malo : 1724
3rd Qu.: 68.00 Incapacitado/a para trabajar: 582 Muy malo : 499
Max. :103.00 Las labores del hogar :2156
Otros : 28
G25c_1 G25c_2 G25c_11 G25c_12 G25c_26 GHQ12 N48 O78
Sí : 6244 Sí: 530 Sí: 1154 Sí: 2266 Sí : 1146 Min. : 0.000 Ultimas 4 sem: 7120 Sí: 6901
No :16843 No:22559 No:21935 No:20823 No :21942 1st Qu.: 0.000 4sem-12meses :11956 No:16188
No sabe: 2 No sabe: 1 Median : 0.000 Más de 12m : 3972
Mean : 1.462 Nunca : 41
3rd Qu.: 2.000
Max. :12.000
P87_2a P87_7a P87_12a P87_14a P87_15a P87_17a
Sí : 8157 Sí : 3445 Sí : 5787 Sí : 1540 Sí : 334 Sí : 32
No :14929 No :19640 No :17293 No :21539 No :22752 No :23050
No sabe : 1 No sabe : 1 No sabe : 6 No sabe : 6 No sabe : 1 No sabe : 3
No contesta: 2 No contesta: 3 No contesta: 3 No contesta: 4 No contesta: 2 No contesta: 4
P87_18a P87_19a P87_21a P87_22a Q88 Q103
Sí : 4124 Sí : 2030 Sí : 154 Sí : 516 Sí: 5327 Sí : 9296
No :18953 No :21053 No :22927 No :22564 No:17762 No :13629
No sabe : 9 No sabe : 3 No sabe : 5 No sabe : 6 No sabe : 153
No contesta: 3 No contesta: 3 No contesta: 3 No contesta: 3 No contesta: 11
R108_1 T112 V121 Y133
Sí : 525 No hago ejercicio :8878 A diario : 4903 Sí : 2548
No :21797 Alguna actividad física :9042 No a diario : 495 No :20526
No lo he necesitado: 760 Varias veces al mes :2547 Ha fumado antes : 5962 No sabe : 4
No sabe : 5 Varias veces a la semana:2612 Nunca ha fumado de forma habitual:11707 No contesta: 11
No contesta : 2 No sabe : 3 No sabe : 3
No contesta : 7 No contesta : 19
GHQ12_rec
No morbilidad psíquica:18688
Sí morbilidad psíquica: 4401
Explicación de resultados del script
- Demografía:
- SEXOa: De los 23,089 encuestados, 10,595 son hombres y 12,494 son mujeres. Esto indica una mayor participación femenina en la encuesta.
- EDADa: Las edades varían de 15 a 103 años, con una mediana de 53 años. Esto sugiere una muestra de edad bastante amplia y posiblemente una población envejecida.
- Salud y Condiciones Médicas:
- G21 (Estado de Salud): Una mayoría de los encuestados califica su salud como «Buena» (11,145 personas), seguido por «Regular» (5,531 personas) y «Muy buena» (4,190 personas). Esto indica que la mayoría de los encuestados percibe su salud de manera positiva.
- G25c_1 (Tensión Alta): De los encuestados, 6,244 informaron tener tensión alta, mientras que 16,843 no la tienen o no reportaron tenerla.
- G25c_12 (Diabetes): 2,266 personas indicaron tener diabetes, en comparación con 20,823 que no la tienen o no reportaron tenerla.
- Morbilidad Psíquica (GHQ12):
- La recategorización de GHQ12 en GHQ12_rec muestra que 18,688 personas no presentan signos de morbilidad psíquica, mientras que 4,401 sí presentan. Esto podría ser un indicador importante para investigaciones relacionadas con la salud mental en la población.
- Salud y Estilo de Vida:
- O78 (Uso de Servicios de Urgencias): 6,901 personas usaron servicios de urgencias en los últimos 12 meses, mientras que 16,188 no lo hicieron.
- V121 (Hábito de Fumar): Se observa una diversidad en los hábitos de fumar: 4,903 fuman a diario, 495 no fuman a diario, 5,962 han fumado antes, y 11,707 nunca han fumado de forma habitual.
- T112 (Actividad Física): 8,878 personas no hacen ejercicio, 9,042 realizan alguna actividad física, 2,547 varias veces al mes, y 2,612 varias veces a la semana. Esto proporciona una visión del nivel de actividad física entre los encuestados.
- Otras Observaciones:
- Medicamentos y Tratamientos (P87 series): Se observan datos sobre el consumo de diferentes tipos de medicamentos, como medicinas para el dolor, tranquilizantes, medicamentos para la tensión arterial, antidepresivos, etc. Estos datos son importantes para comprender los patrones de medicación en la población.
- Q88 (Vacuna Gripe): 5,327 personas se vacunaron contra la gripe, mientras que 17,762 no lo hicieron.
En resumen, estos datos ofrecen una visión integral de la salud, el estilo de vida y las características demográficas de los encuestados. Los patrones observados en las respuestas pueden ser útiles para formular políticas de salud pública, realizar investigaciones adicionales y entender mejor los aspectos de la salud y el bienestar en la población española.
Plots Script
install.packages("ggplot2")
install.packages("knitr")
library(ggplot2)
library(knitr)
# Tabla para la distribución del sexo
kable(table(ense$SEXOa), caption = "Distribución por Sexo")
# Tabla para el estado de salud
kable(table(ense$G21), caption = "Distribución del Estado de Salud")
# Histograma de Edades
ggplot(ense, aes(x = EDADa)) +
geom_histogram(binwidth = 5, fill = "blue", color = "black") +
theme_minimal() +
labs(title = "Distribución de Edades", x = "Edad", y = "Frecuencia")
# Gráfico de barras para el estado de salud
ggplot(ense, aes(x = G21)) +
geom_bar(fill = "orange", color = "black") +
theme_minimal() +
labs(title = "Estado de Salud de los Encuestados", x = "Estado de Salud", y = "Frecuencia")
# Gráfico de barras para morbilidad psíquica
ggplot(ense, aes(x = GHQ12_rec)) +
geom_bar(fill = "green", color = "black") +
theme_minimal() +
labs(title = "Morbilidad Psíquica", x = "Morbilidad Psíquica", y = "Frecuencia")
# Cargar las bibliotecas necesarias
install.packages("ggplot2")
install.packages("knitr")
library(ggplot2)
library(knitr)
# Función para crear un gráfico de barras para variables categóricas
plot_categorical <- function(data, variable, title) {
ggplot(data, aes_string(x = variable)) +
geom_bar(fill = "skyblue", color = "black") +
theme_minimal() +
labs(title = title, x = variable, y = "Frecuencia")
}
# Función para crear histograma para variables numéricas
plot_numeric <- function(data, variable, binwidth, title) {
ggplot(data, aes_string(x = variable)) +
geom_histogram(binwidth = binwidth, fill = "coral", color = "black") +
theme_minimal() +
labs(title = title, x = variable, y = "Frecuencia")
}
# Visualización de variables categóricas
categorical_vars <- c("SEXOa", "A11_i", "E1_1", "G21", "O78", "V121", "Y133", "GHQ12_rec")
for (var in categorical_vars) {
print(plot_categorical(ense, var, paste("Distribución de", var)))
}
# Visualización de variables numéricas
numeric_vars <- c("EDADa", "GHQ12")
for (var in numeric_vars) {
print(plot_numeric(ense, var, 5, paste("Distribución de", var)))
}
# Crear tablas para las primeras 5 variables categóricas
for (var in head(categorical_vars, 5)) {
cat_var_table <- table(ense[[var]])
kable(cat_var_table, caption = paste("Tabla de Frecuencia de", var))
}
Plots

El cuidado de personas mayores parece estar asociado con un aumento en el riesgo de morbilidad psíquica, lo que subraya la importancia de brindar apoyo adecuado a los cuidadores.





