#' 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.