R/enablelocations.R

Defines functions enable_locations

Documented in enable_locations

#' enable_locations
#'
#' @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 httr GET
#' @importFrom httr write_disk
#' @importFrom readxl read_excel
#' @importFrom plyr revalue
#' @importFrom dplyr %>%
#' @importFrom dplyr mutate
#' @importFrom dplyr case_when
#'
#'
enable_locations <- function(data, not_located = FALSE) {
  url1 <-
    'http://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/Administrativ/Archiv/GVAuszugQ/AuszugGV1QAktuell.xlsx?__blob=publicationFile'
  GET(url1, write_disk(tf <- tempfile(fileext = ".xlsx")))
  bez <-
    read_excel(
      tf,
      sheet = 2,
      col_names = c(
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11",
        "12",
        "13",
        "14",
        "15",
        "16",
        "17",
        "18",
        "19",
        "20",
        "21"
      )
    )
  bez <- bez[, c(3:5, 7:8)]
  bez <-
    setNames(bez, c("ULAND", "UREGBEZ", "UKREIS", "UGEMEINDE", "BEZ"))

  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))
    )
  data <-
    merge(
      x = data,
      y = bez[, c("ULAND", "UREGBEZ", "UKREIS", "UGEMEINDE", "BEZ")],
      by = c("ULAND", "UREGBEZ", "UKREIS", "UGEMEINDE"),
      all.x = T
    )
  data$ULANDBEZ <- revalue(
    data$ULAND,
    c(
      "01" = "Schleswig-Holstein",
      "02" = "Hamburg",
      "03" = "Niedersachsen",
      "04" = "Bremen",
      "05" = "Nordrhein-Westfalen",
      "06" = "Hessen",
      "07" = "Rheinland-Pfalz",
      "08" = "Baden-Wuerttemberg",
      "09" = "Bayern",
      "10" = "Saarland",
      "11" = "Berlin",
      "12" = "Brandenburg",
      "13" = "Mecklenburg-Vorpommern",
      "14" = "Sachsen",
      "15" = "Sachsen-Anhalt",
      "16" = "Thueringen"
    )
  )
  data$BEZ <- gsub("\\,.*", "", data$BEZ)
  nl <- data[is.na(data$BEZ), ]
  if (not_located == "FALSE")
    return(data)
  if (not_located == "TRUE")
    return(nl)
}
LasMal/DestatisR documentation built on March 21, 2020, 7 p.m.