#' Frenquencia por decada.
#'
#' Retorna a frequencia de nascimentos por decada de nascimento para o nome consultado.
#'
#' @param nome Vetor com um ou mais nomes a serem consultados.
#' @param sexo Se `NULL` (default), a consulta pelo nome eh unissex. Valores podem ser "M", para o sexo masculino, ou "F", para o feminino.
#' @param localidade_cod Se `NULL` (default), a consulta eh para todo territorio. Para especificar uma localidade, utilize o identificador de uma Unidade da Federação.
#'
#' @examples
#' brnome_freq("italo", "m")
#'
#' @export
brnome_freq <- function(nome, sexo = NULL, localidade_cod = NULL) {
if (!is.null(sexo) & !is.null(localidade_cod)) {
stop("Sexo e localidade nao podem ser indicados em conjunto, especifique apenas um dos dois", call. = FALSE)
}
nome <- stringr::str_c(nome, collapse = "%7C")
sexo <- verifica_sexo(sexo)
localidade <- verifica_localidade(localidade_cod)
consulta <- stringr::str_glue("https://servicodados.ibge.gov.br/api/v2/censos/nomes/{nome}")
if (!is.null(sexo)) {
consulta <- stringr::str_glue("{consulta}?sexo={sexo}")
}
if (!is.null(localidade_cod)) {
consulta <- stringr::str_glue("{consulta}?localidade={localidade$localidade}")
} else {
consulta <- stringr::str_glue("{consulta}?localidade=BR")
}
tab <- pega_tabela(consulta)
if (is.null(tab)) return(NULL)
tab <- pega_tabela(consulta) %>%
dplyr::mutate(
nascimento_periodo = corrige_periodo(periodo),
nascimento_decada = as.integer(stringr::str_extract(periodo, "[:digit:]{4}"))
) %>%
dplyr::left_join(localidade, by = c("localidade")) %>%
dplyr::select(
nome, sexo, localidade_cod = localidade, localidade_nome,
nascimento_periodo, nascimento_decada, frequencia
) %>%
dplyr::mutate(
localidade_cod = ifelse(
localidade_cod == "BR",
localidade_cod,
as.integer(localidade_cod)
)
)
if (!is.null(sexo)) {
tab$sexo <- toupper(sexo)
}
tab
}
# brnome_freq <- function(nome, sexo = NULL, localidade_cod = NULL) {
#
# #nome <- stringr::str_c(nome, collapse = "%7C") # corrigir para aceitar so um nome
#
# sexo <- verifica_sexo(sexo)
#
# localidade <- verifica_localidade(localidade_cod)
#
# consulta <- stringr::str_glue("https://servicodados.ibge.gov.br/api/v1/censos/nomes/faixa?nome={nome}")
#
# if (!is.null(sexo)) {
# consulta <- stringr::str_glue("{consulta}&sexo={sexo}")
# }
#
# if (!is.null(localidade_cod)) {
# consulta <- stringr::str_glue("{consulta}®iao={localidade$localidade}")
# }
#
# tab <- pega_tabela(consulta)
#
# if (nrow(tab) == 0) {
# return(data.frame(nome = NA, sexo = NA, regiao = NA, decada_nascimento = NA, freq = NA))
# }
#
# tab %>%
# dplyr::mutate(
# decada_nascimento = as.integer(stringr::str_extract(faixa, "[:digit:]{4}")) - 10L,
# regiao = ifelse(regiao == 0, NA_character_, regiao),
# sexo = ifelse(sexo == "", NA_character_, stringr::str_to_upper(sexo))
# ) %>%
# dplyr::select(nome, sexo, regiao, decada_nascimento, freq)
# }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.