#' @title Gera dados de casos-obitos por 100k
#'
#' @description Avalia os dados de casos e obitos do MS e gera um data.table com as informacoes de crescimento de casos e obitos semanais por UF
#'
#' @inheritParams gera_series
#'
#' @return um data.table com os dados de crescimento de casos e obitos semanais por UF
#'
#' @import data.table
#' @import zoo
gera_100k = function(dados_ps){
# Conformando ao tipo data.table
dados = transforma_dt(dados_ps)
pop = transforma_dt(codeplan.boletim2::pop_idade)
# Obtendo dados de populacao
pop = pop[, faixa_etaria := cut(idade, c(0, 20, 30, 40, 50, 60, 70, 80, 200), right = FALSE)]
## Populaacao por faixa etaria
pop = pop[,.(pop = sum(pop)), by = faixa_etaria]
## Alterando faixa etaria
pop$faixa_etaria = ordered(pop$faixa_etaria)
pop$faixa_etaria = factor(pop$faixa_etaria, labels = c("0-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80 e +"))
# Calculando dados mortais
dados[, idade := as.numeric(idade)]
dados[,`:=`(faixa_etaria = cut(idade, c(0, 20, 30, 40, 50, 60, 70, 80, 200), right = FALSE),
ano_mes = zoo::as.yearmon(as.Date(primeiros_sintomas)),
obito_ano_mes = zoo::as.yearmon(as.Date(data_obito)))]
# Calculca-se casos e obitos por semana
dados$faixa_etaria = ordered(dados$faixa_etaria)
dados$faixa_etaria = factor(dados$faixa_etaria, labels = c("0-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80 e +"))
# Casos
## Total
casos = dados[, .(casos = .N), by = ano_mes]
casos[, pop := sum(pop$pop)]
casos[, casos_100k := round(100000 * casos /pop)]
casos = dcast(casos, "" ~ ano_mes, value.var = "casos_100k")[,. := NULL]
casos[, faixa_etaria := "Total"]
## Por faixa etaria
casos_etaria = dados[, .(casos = .N), by = .(ano_mes, faixa_etaria)]
casos_etaria[pop, pop := pop, on = "faixa_etaria"]
casos_etaria[, casos_100k := round(100000 * casos /pop)]
casos_etaria[, .(ano_mes, casos_100k)]
casos_etaria = dcast(casos_etaria, faixa_etaria ~ ano_mes, value.var = "casos_100k")
## Unindo
casos = rbind(casos, casos_etaria)
# Obitos
## Total
obitos = dados[, .(obitos = .N), by = obito_ano_mes]
obitos[, pop := sum(pop$pop)]
obitos[, obitos_100k := round(100000 * obitos /pop)]
obitos = obitos[!is.na(obito_ano_mes), .(obito_ano_mes, obitos_100k)]
obitos = dcast(obitos, "" ~ obito_ano_mes, value.var = "obitos_100k")[,. := NULL]
obitos[, faixa_etaria := "Total"]
## Por faixa etaria
obitos_etaria = dados[, .(obitos = .N), by = .(obito_ano_mes, faixa_etaria)]
obitos_etaria[pop, pop := pop, on = "faixa_etaria"]
obitos_etaria[, obitos_100k := round(100000 * obitos /pop)]
obitos_etaria = obitos_etaria[!is.na(obito_ano_mes), .(faixa_etaria, obito_ano_mes, obitos_100k)]
obitos_etaria = dcast(obitos_etaria, faixa_etaria ~ obito_ano_mes, value.var = "obitos_100k")
## Unindo
obitos = rbind(obitos, obitos_etaria)
# Gera lista de resultados
dados_finais = list(casos = casos,
obitos = obitos)
# Retorna Resultados
return(dados_finais)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.