R/add_regions.R

#' Add regions
#'
#' @param data Accident data from Destatis test
#' @param not_located All accidents that could not be located
#'
#' @return Accident data from Destatis with location information
#' @return all accidents that could not be located
#' @export
#'
#' @importFrom dplyr %>%
#' @importFrom dplyr mutate
#' @importFrom dplyr case_when
#' @importFrom readxl read_excel
#' @importFrom httr GET
#' @importFrom httr write_disk

function(data, not_located = FALSE) {
  data <- data %>%
    mutate(
      UREGBEZ = case_when(ULAND %in% c('02', '11') ~ '0',
                          TRUE ~ as.character(UREGBEZ)),
      UKREIS = case_when(ULAND %in% c('02', '11') ~ '00',
                         TRUE ~ as.character(UKREIS)),
      UGEMEINDE = case_when(ULAND %in% c('02', '11') ~ '000',
                            TRUE ~ as.character(UGEMEINDE))
    )
  options(scipen = 999)
  url1 <-
    "https://www.bmvi.de/SharedDocs/DE/Anlage/G/regiostar-referenzdateien.xlsx?__blob=publicationFile"
  GET(url1, write_disk(tf <- tempfile(fileext = ".xlsx")))
  df <- read_excel(tf, sheet = 4)
  df$gem <- as.character(df$gem)
  data$gem <- paste0(data$ULAND, data$UREGBEZ, data$UKREIS, data$UGEMEINDE)
  data$gem <- gsub('^0', '', data$gem)
  data_m <- merge(x = data,
                  y = df,
                  by = "gem",
                  all.x = T)
  not_located <- data_m[is.na(data_m$RegioStaR7), ]
  options("scipen" = 0, "digits" = 7)
  if (not_located == "FALSE")
    return(data)
  if (not_located == "TRUE")
    return(not_located)
}
LasMal/DestatisR documentation built on March 21, 2020, 7 p.m.