#' @title Gera dados descritivos da pandemia por ra
#'
#' @description Gera dados de casos, obitos, letalidade, mortalidade e numero de casos por habitantes por ra do Distrito Federal de acordo com os dados da SSP
#'
#' @param dados um data.frame com dados da SSP
#'
#' @return data.table com dados de casos, obitos, letalidade, mortalidade e numero de casos por habitantes por ra
#'
#' @import data.table
gera_mortal_letal_ras = function(dados){
# Conformando ao tipo data.table
dados = transforma_dt(dados)
# Limpeza dos dados
## Definie RA nao informada
dados[, ra := ifelse(is.na(ra) & uf %in% c("Distrito Federal", "DISTRITO FEDERAL"), "Não informado", ra)]
## Define regioes fora do DF
dados[is.na(ra), local := fcase(!is.na(entorno), "Entorno DF", uf != "Distrito Federal", "Outros Estados", default = NA)]
# Calcula do DF
## Define Casos por RA
df_casos = dados[!is.na(ra), .(.N), by = ra]
## Define Estados de Saude por RA
df_estado_saude = dcast(dados[!is.na(ra), .(.N), by = .(ra,estado_saude)], ra ~ estado_saude, value.var = "N")
## Une Casos aos estados de saude
df_estado_saude[df_casos, confirmados := N, on = "ra"]
df_estado_saude[, ra := ifelse(ra == 'Sol Nascente', 'Sol Nascente/Pôr do Sol', ra)]
## Estabelece populacoes das RAS
df_estado_saude[codeplan.boletim2::pop_ra, pop := pop, on = "ra"]
## Limpa nomes
df_estado_saude = janitor::clean_names(df_estado_saude)
## Adiciona total
df_estado_saude = janitor::adorn_totals(df_estado_saude, name = "DF")
## Corrige erros pontuais
df_estado_saude[,`:=`(pop = ifelse(ra == "DF", 2881900, pop),
obito = ifelse(ra == "SIA", 0, obito),
nao_informado = ifelse(ra == "SIA", 0, nao_informado))]
## Calcula taxas
df_estado_saude[,`:=`(taxa_prev = 100000 * confirmados/pop,
taxa_letalidade = obito/confirmados,
taxa_mortalidade = 100000 * confirmados/pop,
perc_curados = curado/confirmados)]
# Calcula fora do DF
## Define Casos para fora do DF
outros_casos = dados[is.na(ra), .(.N), by = .(local)]
## Define Estados de Saude fora do DF
outros_saude = dcast(dados[is.na(ra), .(.N), by = .(local, estado_saude)], local ~ estado_saude, value.var = "N")
## Une Casos aos estados de saude
outros_saude[outros_casos, confirmados := N, on = "local"]
## Limpa nomes
outros_saude = janitor::clean_names(outros_saude)
## Altera nome para unir tabelas
setnames(outros_saude, "local", "ra")
# Somar total
outros_saude = rbind(df_estado_saude[ra == "DF", .(ra, curado, nao_informado, obito, confirmados)], outros_saude)
outros_saude[, ra := ifelse(is.na(ra), 'Outros Estados - Não Informado', ra)]
## Adiciona total
outros_saude = janitor::adorn_totals(outros_saude, name = "Total")[ra != "DF",]
# Une Tabelas
dados_finais = rbind(df_estado_saude, outros_saude, fill = TRUE)
#Retorna resultados
return(dados_finais)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.