obtener la base de datos

datos <- read.csv("C:/Users/enrique/OneDrive/Escritorio/Notas Rstudio/estadisticas_vitales_mexico_2018_2021.csv")
plot(cars)

print(datos)
NA

Calculo de la tasa de mortalidad del periodo 2018-2021

tasa_mortalidad <- (datos$defunciones_registradas/datos$poblacion_total) * 1000
datos$tasa_mortalidad <- (datos$defunciones_registradas/datos$poblacion_total) * 1000
datos[, c("anio", "tasa_mortalidad")]

#descripcion del resultado obtenido 
cat("tasa de mortidad:", mean(tasa_mortalidad, na.rm = TRUE), "muertes por cada 1,000 habitantes durante el periodo 2018-2021\n")
tasa de mortidad: 7.303069 muertes por cada 1,000 habitantes durante el periodo 2018-2021

Generacion del grafico por ggplot

#grafico 
ggplot(datos, aes(x = anio, y = tasa_mortalidad, fill = anio)) + geom_bar(stat = "identity", fill = "red") + labs(title = "Tasa de mortalidad periodo 2018-2021", x = "anio", y = "Tasa de mortalidad (por 1,000 habitantes") + theme_classic()

Calculo de tasa de natalidad

#Datos de tasa de natalidad
nacimientos <- datos$nacimientos_registrados
total_poblacion <- datos$poblacion_total 

#Calculos de natalidad
tasa_natalidad <- (nacimientos/total_poblacion) * 1000

#impresion de resultados
cat("natalidad:", mean(tasa_natalidad, na.rm = TRUE), "nacimientos por cada 1,000 durante el periodo 2018-2021\n")
natalidad: 15.49277 nacimientos por cada 1,000 durante el periodo 2018-2021
datos$tasa_natalidad <- (datos$nacimientos_registrados / datos$poblacion_total) * 1000

datos[, c("anio", "tasa_natalidad")]

Visualizacion del grafico

ggplot(datos, aes(x = anio, y = tasa_natalidad, fill = anio)) + geom_bar(stat = "identity", fill = "green") + labs(title = "Tasa de natalidad periodo 2018-2021", x = "anio", y = "Tasa de mortalidad (por 1,000 habitantes") + theme_classic()

Calculo de incremento natural poblacional

incremento_natural <- (tasa_natalidad - tasa_mortalidad)

datos$incremento_natural <- datos$tasa_natalidad - datos$tasa_mortalidad

datos[, c("anio", "incremento_natural")]
NA

visualizacion del resultado

cat("Incremento natural",
    mean(incremento_natural, na.rm = TRUE), 
    "por cada 1,000 habitantes durante el periodo 2018-2021\n")
Incremento natural 8.189702 por cada 1,000 habitantes durante el periodo 2018-2021
str(datos)
'data.frame':   4 obs. of  9 variables:
 $ anio                         : int  2018 2019 2020 2021
 $ poblacion_total              : int  124738000 125930000 126014024 126705138
 $ nacimientos_registrados      : int  2162535 2092214 1629211 1912178
 $ defunciones_registradas      : int  722611 747784 1086743 1122249
 $ incremento_natural           : num  11.54 10.68 4.3 6.23
 $ casos_covid_confirmados      : num  0 0 1437185 NA
 $ defunciones_covid_confirmadas: num  0 0 126507 NA
 $ tasa_mortalidad              : num  5.79 5.94 8.62 8.86
 $ tasa_natalidad               : num  17.3 16.6 12.9 15.1

Uso de ggplot para representacion grafica de los datos epidemiologicos

ggplot(datos, aes(x = anio, y = incremento_natural)) + geom_line(linewidth = 1) + geom_point(size = 3) + geom_text( aes(label = round(incremento_natural, 2)), vjust = -1.5, size = 4) + scale_y_continuous(expand = expansion(mult = c(0.05, 2.0))) + labs(title = "Incremento natural de la poblacion", x = "Ano", y = "incremento natural (por cada 1,000 habitantes") + theme_classic()

Datos de covid-19

datos$letalidad_covid_19 <- (datos$defunciones_covid_confirmadas / datos$casos_covid_confirmados) * 100
datos[, c("anio", "letalidad_covid_19")]
datos_letalidad <- datos[datos$casos_covid_confirmados > 0, c("anio", "letalidad_covid_19")]

datos_letalidad

Intente realize un grafico para demostar la letalidad que obtuvo covid-19 en el 2020 pero el codigo no funciono por alguna razonar

letalidad_valida <- datos_letalidad[!is.na(datos_letalidad) & !is.nan(datos_letalidad)]
Error en is.nan(datos_letalidad): 
  método por defecto no implementado para 'list'

Realiacion de cuadro de flextable

Datos <- data.frame(
  año = c(2018, 2019, 2020, 2021),
  poblacion_total = c(124738000, 125930000, 126014024, 126705138),
  nacimientos_registrados = c(2162535, 2092214, 1629211, 1912178),
  defunciones_registradas = c(722611, 747784, 1086743, 1122249),
  casos_covid_confirmados = c(0, 0, 1437185, 0),
  defunciones_covid_confirmadas = c(0, 0, 126507, 0))

datos$tasa_natalidad <- (datos$nacimientos_registrados /
                         datos$poblacion_total) * 1000

datos$tasa_mortalidad <- (datos$defunciones_registradas /
                          datos$poblacion_total) * 1000

datos$incremento_natural <- datos$tasa_natalidad - datos$tasa_mortalidad

datos$tasa_letalidad <- (datos$defunciones_covid_confirmadas / datos$casos_covid_confirmados) * 100

# Redondear solo columnas númericas
datos_redondeados <- datos %>%
  mutate_if(is.numeric, round, 2)

# Crear la tabla con flextable
flextable(datos_redondeados) %>%
  autofit()

anio

poblacion_total

nacimientos_registrados

defunciones_registradas

incremento_natural

casos_covid_confirmados

defunciones_covid_confirmadas

tasa_mortalidad

tasa_natalidad

letalidad_covid_19

tasa_letalidad

2,018

124,738,000

2,162,535

722,611

11.54

0

0

5.79

17.34

2,019

125,930,000

2,092,214

747,784

10.68

0

0

5.94

16.61

2,020

126,014,024

1,629,211

1,086,743

4.30

1,437,185

126,507

8.62

12.93

88.02

8.8

2,021

126,705,138

1,912,178

1,122,249

6.23

8.86

15.09

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2sgNiBFbnJpcXVlVmVyZHVnbyBUYXJlYSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpvYnRlbmVyIGxhIGJhc2UgZGUgZGF0b3MgDQpgYGB7cn0NCmRhdG9zIDwtIHJlYWQuY3N2KCJDOi9Vc2Vycy9lbnJpcXVlL09uZURyaXZlL0VzY3JpdG9yaW8vTm90YXMgUnN0dWRpby9lc3RhZGlzdGljYXNfdml0YWxlc19tZXhpY29fMjAxOF8yMDIxLmNzdiIpDQpwbG90KGNhcnMpDQpwcmludChkYXRvcykNCg0KYGBgDQoNCkNhbGN1bG8gZGUgbGEgdGFzYSBkZSBtb3J0YWxpZGFkIGRlbCBwZXJpb2RvIDIwMTgtMjAyMQ0KYGBge3J9DQp0YXNhX21vcnRhbGlkYWQgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzL2RhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQpkYXRvcyR0YXNhX21vcnRhbGlkYWQgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzL2RhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQpkYXRvc1ssIGMoImFuaW8iLCAidGFzYV9tb3J0YWxpZGFkIildDQoNCiNkZXNjcmlwY2lvbiBkZWwgcmVzdWx0YWRvIG9idGVuaWRvIA0KY2F0KCJ0YXNhIGRlIG1vcnRpZGFkOiIsIG1lYW4odGFzYV9tb3J0YWxpZGFkLCBuYS5ybSA9IFRSVUUpLCAibXVlcnRlcyBwb3IgY2FkYSAxLDAwMCBoYWJpdGFudGVzIGR1cmFudGUgZWwgcGVyaW9kbyAyMDE4LTIwMjFcbiIpDQpgYGANCkdlbmVyYWNpb24gZGVsIGdyYWZpY28gcG9yIGdncGxvdA0KYGBge3J9DQojZ3JhZmljbyANCmdncGxvdChkYXRvcywgYWVzKHggPSBhbmlvLCB5ID0gdGFzYV9tb3J0YWxpZGFkLCBmaWxsID0gYW5pbykpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGwgPSAicmVkIikgKyBsYWJzKHRpdGxlID0gIlRhc2EgZGUgbW9ydGFsaWRhZCBwZXJpb2RvIDIwMTgtMjAyMSIsIHggPSAiYW5pbyIsIHkgPSAiVGFzYSBkZSBtb3J0YWxpZGFkIChwb3IgMSwwMDAgaGFiaXRhbnRlcyIpICsgdGhlbWVfY2xhc3NpYygpDQpgYGANCg0KQ2FsY3VsbyBkZSB0YXNhIGRlIG5hdGFsaWRhZCANCmBgYHtyfQ0KI0RhdG9zIGRlIHRhc2EgZGUgbmF0YWxpZGFkDQpuYWNpbWllbnRvcyA8LSBkYXRvcyRuYWNpbWllbnRvc19yZWdpc3RyYWRvcw0KdG90YWxfcG9ibGFjaW9uIDwtIGRhdG9zJHBvYmxhY2lvbl90b3RhbCANCg0KI0NhbGN1bG9zIGRlIG5hdGFsaWRhZA0KdGFzYV9uYXRhbGlkYWQgPC0gKG5hY2ltaWVudG9zL3RvdGFsX3BvYmxhY2lvbikgKiAxMDAwDQoNCiNpbXByZXNpb24gZGUgcmVzdWx0YWRvcw0KY2F0KCJuYXRhbGlkYWQ6IiwgbWVhbih0YXNhX25hdGFsaWRhZCwgbmEucm0gPSBUUlVFKSwgIm5hY2ltaWVudG9zIHBvciBjYWRhIDEsMDAwIGR1cmFudGUgZWwgcGVyaW9kbyAyMDE4LTIwMjFcbiIpDQpgYGANCmBgYHtyfQ0KZGF0b3MkdGFzYV9uYXRhbGlkYWQgPC0gKGRhdG9zJG5hY2ltaWVudG9zX3JlZ2lzdHJhZG9zIC8gZGF0b3MkcG9ibGFjaW9uX3RvdGFsKSAqIDEwMDANCg0KZGF0b3NbLCBjKCJhbmlvIiwgInRhc2FfbmF0YWxpZGFkIildDQpgYGANCg0KVmlzdWFsaXphY2lvbiBkZWwgZ3JhZmljbyANCmBgYHtyfQ0KZ2dwbG90KGRhdG9zLCBhZXMoeCA9IGFuaW8sIHkgPSB0YXNhX25hdGFsaWRhZCwgZmlsbCA9IGFuaW8pKSArIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCBmaWxsID0gImdyZWVuIikgKyBsYWJzKHRpdGxlID0gIlRhc2EgZGUgbmF0YWxpZGFkIHBlcmlvZG8gMjAxOC0yMDIxIiwgeCA9ICJhbmlvIiwgeSA9ICJUYXNhIGRlIG1vcnRhbGlkYWQgKHBvciAxLDAwMCBoYWJpdGFudGVzIikgKyB0aGVtZV9jbGFzc2ljKCkNCmBgYA0KDQpDYWxjdWxvIGRlIGluY3JlbWVudG8gbmF0dXJhbCBwb2JsYWNpb25hbA0KYGBge3J9DQppbmNyZW1lbnRvX25hdHVyYWwgPC0gKHRhc2FfbmF0YWxpZGFkIC0gdGFzYV9tb3J0YWxpZGFkKQ0KDQpkYXRvcyRpbmNyZW1lbnRvX25hdHVyYWwgPC0gZGF0b3MkdGFzYV9uYXRhbGlkYWQgLSBkYXRvcyR0YXNhX21vcnRhbGlkYWQNCg0KZGF0b3NbLCBjKCJhbmlvIiwgImluY3JlbWVudG9fbmF0dXJhbCIpXQ0KDQpgYGANCnZpc3VhbGl6YWNpb24gZGVsIHJlc3VsdGFkbyANCmBgYHtyfQ0KY2F0KCJJbmNyZW1lbnRvIG5hdHVyYWwiLCBtZWFuKGluY3JlbWVudG9fbmF0dXJhbCwgbmEucm0gPSBUUlVFKSwgDQogICAgInBvciBjYWRhIDEsMDAwIGhhYml0YW50ZXMgZHVyYW50ZSBlbCBwZXJpb2RvIDIwMTgtMjAyMVxuIikNCmBgYA0KYGBge3J9DQpzdHIoZGF0b3MpDQpgYGANClVzbyBkZSBnZ3Bsb3QgcGFyYSByZXByZXNlbnRhY2lvbiBncmFmaWNhIGRlIGxvcyBkYXRvcyBlcGlkZW1pb2xvZ2ljb3MgDQpgYGB7cn0NCmdncGxvdChkYXRvcywgYWVzKHggPSBhbmlvLCB5ID0gaW5jcmVtZW50b19uYXR1cmFsKSkgKyBnZW9tX2xpbmUobGluZXdpZHRoID0gMSkgKyBnZW9tX3BvaW50KHNpemUgPSAzKSArIGdlb21fdGV4dCggYWVzKGxhYmVsID0gcm91bmQoaW5jcmVtZW50b19uYXR1cmFsLCAyKSksIHZqdXN0ID0gLTEuNSwgc2l6ZSA9IDQpICsgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGV4cGFuc2lvbihtdWx0ID0gYygwLjA1LCAyLjApKSkgKyBsYWJzKHRpdGxlID0gIkluY3JlbWVudG8gbmF0dXJhbCBkZSBsYSBwb2JsYWNpb24iLCB4ID0gIkFubyIsIHkgPSAiaW5jcmVtZW50byBuYXR1cmFsIChwb3IgY2FkYSAxLDAwMCBoYWJpdGFudGVzIikgKyB0aGVtZV9jbGFzc2ljKCkNCmBgYA0KDQpEYXRvcyBkZSBjb3ZpZC0xOQ0KYGBge3J9DQpkYXRvcyRsZXRhbGlkYWRfY292aWRfMTkgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX2NvdmlkX2NvbmZpcm1hZGFzIC8gZGF0b3MkY2Fzb3NfY292aWRfY29uZmlybWFkb3MpICogMTAwDQpkYXRvc1ssIGMoImFuaW8iLCAibGV0YWxpZGFkX2NvdmlkXzE5IildDQpgYGANCg0KYGBge3J9DQpkYXRvc19sZXRhbGlkYWQgPC0gZGF0b3NbZGF0b3MkY2Fzb3NfY292aWRfY29uZmlybWFkb3MgPiAwLCBjKCJhbmlvIiwgImxldGFsaWRhZF9jb3ZpZF8xOSIpXQ0KDQpkYXRvc19sZXRhbGlkYWQNCmBgYA0KDQoNCkludGVudGUgcmVhbGl6ZSB1biBncmFmaWNvIHBhcmEgZGVtb3N0YXIgbGEgbGV0YWxpZGFkIHF1ZSBvYnR1dm8gY292aWQtMTkgZW4gZWwgMjAyMCBwZXJvIGVsIGNvZGlnbyBubyBmdW5jaW9ubyBwb3IgYWxndW5hIHJhem9uYXINCg0KYGBge3J9DQpsZXRhbGlkYWRfdmFsaWRhIDwtIGRhdG9zX2xldGFsaWRhZFshaXMubmEoZGF0b3NfbGV0YWxpZGFkKSAmICFpcy5uYW4oZGF0b3NfbGV0YWxpZGFkKV0NCnZhbG9yZXMgPC0gYyhkYXRvc19sZXRhbGlkYWQgPSBsZXRhbGlkYWRfdmFsaWRhLA0KICAiTm8gbGV0YWxpZGFkIiA9IDEgLSBsZXRhbGlkYWRfdmFsaWRhKQ0KcGllKHZhbG9yZXMsIGxhYmVscyA9IHBhc3RlMChuYW1lcyh2YWxvcmVzKSwgIjogIiwgcm91bmQodmFsb3JlcyAqIDEwMCwgMiksICIlIiksDQogIG1haW4gPSAiTGV0YWxpZGFkIHBvciBDb3ZpZC0xOSBlbiBlbCBhw7FvIDIwMjAiLA0KICBjb2wgPSBjKCJmaXJlYnJpY2siLCAiYmx1ZSIpKQ0KYGBgDQoNClJlYWxpYWNpb24gZGUgY3VhZHJvIGRlIGZsZXh0YWJsZQ0KYGBge3J9DQpEYXRvcyA8LSBkYXRhLmZyYW1lKA0KICBhw7FvID0gYygyMDE4LCAyMDE5LCAyMDIwLCAyMDIxKSwNCiAgcG9ibGFjaW9uX3RvdGFsID0gYygxMjQ3MzgwMDAsIDEyNTkzMDAwMCwgMTI2MDE0MDI0LCAxMjY3MDUxMzgpLA0KICBuYWNpbWllbnRvc19yZWdpc3RyYWRvcyA9IGMoMjE2MjUzNSwgMjA5MjIxNCwgMTYyOTIxMSwgMTkxMjE3OCksDQogIGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzID0gYyg3MjI2MTEsIDc0Nzc4NCwgMTA4Njc0MywgMTEyMjI0OSksDQogIGNhc29zX2NvdmlkX2NvbmZpcm1hZG9zID0gYygwLCAwLCAxNDM3MTg1LCAwKSwNCiAgZGVmdW5jaW9uZXNfY292aWRfY29uZmlybWFkYXMgPSBjKDAsIDAsIDEyNjUwNywgMCkpDQoNCmRhdG9zJHRhc2FfbmF0YWxpZGFkIDwtIChkYXRvcyRuYWNpbWllbnRvc19yZWdpc3RyYWRvcyAvDQogICAgICAgICAgICAgICAgICAgICAgICAgZGF0b3MkcG9ibGFjaW9uX3RvdGFsKSAqIDEwMDANCg0KZGF0b3MkdGFzYV9tb3J0YWxpZGFkIDwtIChkYXRvcyRkZWZ1bmNpb25lc19yZWdpc3RyYWRhcyAvDQogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQoNCmRhdG9zJGluY3JlbWVudG9fbmF0dXJhbCA8LSBkYXRvcyR0YXNhX25hdGFsaWRhZCAtIGRhdG9zJHRhc2FfbW9ydGFsaWRhZA0KDQpkYXRvcyR0YXNhX2xldGFsaWRhZCA8LSAoZGF0b3MkZGVmdW5jaW9uZXNfY292aWRfY29uZmlybWFkYXMgLyBkYXRvcyRjYXNvc19jb3ZpZF9jb25maXJtYWRvcykgKiAxMDANCg0KIyBSZWRvbmRlYXIgc29sbyBjb2x1bW5hcyBuw7ptZXJpY2FzDQpkYXRvc19yZWRvbmRlYWRvcyA8LSBkYXRvcyAlPiUNCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCAyKQ0KDQojIENyZWFyIGxhIHRhYmxhIGNvbiBmbGV4dGFibGUNCmZsZXh0YWJsZShkYXRvc19yZWRvbmRlYWRvcykgJT4lDQogIGF1dG9maXQoKQ0KYGBgDQoNCg0KDQoNCg0KDQo=