#' @title Gera dados de series segundo a base de cadastro
#'
#' @description Avalia os dados de cadastro e gera uma media movel de casos e obitos para estas series
#'
#' @param dados um data.frame com dados de cadastro da SSP
#' @param faixa_etaria Uma série de inteiros de 15 a 29, 30 a 59 e 60 a 200 com as faixas etarias consideradas
#'
#' @return um data.table com os dados as medias móveis de casos e obitos segundo dados de cadastro
#'
#' @import data.table
gera_series_cadastro = function(dados, faixa_etaria) {
# Conformando ao tipo data.table
dados = transforma_dt(dados)
# Checa se a variavel faixa_etaria foi colocada corretamente
if (!(identical(faixa_etaria, 15:29) | identical(faixa_etaria, 30:59) | identical(faixa_etaria, 60:200))) {
stop("Escolha um dos vetores 15:29, 30:59 ou 60:200 para faixa_etaria")}
# Filtra os dados para a faixa_etaria selecionada
dados_filtrados = dados[Idade %in% faixa_etaria,]
# Gera a serie de casos
casos = dados_filtrados[, .(.N), by = cadastro]
# Gera serie de obitos
obitos = dados_filtrados[!is.na(dataobito), .(.N), by = dataobito]
# Gera base de datas para a tabela que sera contruida
series = data.table(data = seq(min(dados$cadastro, na.rm = TRUE),
max(dados$cadastro, na.rm = TRUE), by = "day"))
# Une a base a serie de casos
series[casos, casos := N, on = .(data = cadastro)]
# Une a serie de obitos a base
series[obitos, obitos := N, on = .(data = dataobito)]
# Substitui os valores NA por zero
series[, `:=`(casos = ifelse(is.na(casos), 0, casos),
obitos = ifelse(is.na(obitos), 0, obitos))]
# Gera média móvel
series[,`:=`(mm_casos = frollmean(casos, 7, align = "right"),
mm_obitos = frollmean(obitos, 7, align = "right"))]
# Remove colunas nao usadas
series = series[, `:=`(casos = NULL,
obitos = NULL)]
# Altera a nomenclatura
if (max(faixa_etaria) == 29){
setnames(series, c("mm_casos", "mm_obitos"), c("mm_casos_29", "mm_obitos_29"))
} else if (max(faixa_etaria) == 59) {
setnames(series, c("mm_casos", "mm_obitos"), c("mm_casos_3059", "mm_obitos_3059"))
} else {
setnames(series, c("mm_casos", "mm_obitos"), c("mm_casos_60", "mm_obitos_60"))
}
# Retorna serie
return(series)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.