library(nsoApi)
library(dplyr)
library(tidyr)
library(RCurl)
curl <- getCurlHandle()
n_table <- 5
file.apiKey.enc <- system.file("apiKey.R.gpg", package = "nsoApi")
nsoApi::nsoApiGPG(file = file.apiKey.enc,
                  gpg = NULL,
                  passphrase = Sys.getenv("NSOAPIGPG"),
                  keep = FALSE
                  )
api.param.datenexport <- list(
    method = "DatenExport",
    kennung = apiKey$GENESIS$kennung,
    passwort = apiKey$GENESIS$passwort,
    namen = "73421BJ001",
    bereich = "oeffentlich",
    format = "csv",
    werte = "false",
    metadaten = "false",
    zusatz = "true",
    startjahr = "2013",
    endjahr = "2014",
    zeitscheiben = "",
    regionalschluessel = "",
    sachmerkmal = "",
    sachschluessel = "",
    stand = "01.01.2001",
    sprache = "de"
)
## retrieve metadata
xml_list_datenexport_meta <- genesisAPI(api.param = api.param.datenexport,
                                   service = "ExportService",
                                   curl = curl)
meta_df <- genesisXMLtoDF(xml.list = xml_list_datenexport_meta,
                          meta = TRUE)
knitr::kable(meta_df)

Genesis Data

api.param.datenexport <- list(
    method = "DatenExport",
    kennung = apiKey$GENESIS$kennung,
    passwort = apiKey$GENESIS$passwort,
    namen = "73421BJ001",
    bereich = "oeffentlich",
    format = "csv",
    werte = "true",
    metadaten = "false",
    zusatz = "false",
    startjahr = "1993",
    endjahr = "2016",
    zeitscheiben = "",
    regionalschluessel = "",
    sachmerkmal = "",
    sachschluessel = "",
    stand = "01.01.2001",
    sprache = "de"
)
## retrieve data
xml_list_datenexport <- genesisAPI(api.param = api.param.datenexport,
                                   service = "ExportService",
                                   curl = curl)
## convert to data frame
data_df <- genesisXMLtoDF(xml.list = xml_list_datenexport)
knitr::kable(data_df[1:n_table,])

Visualize

library(ggplot2)
library(ggradar)

p <-
  data_df %>%
  left_join(meta_df$label, by = c("UNIT" = "code")) %>%
  select(-DINSG, -UNIT) %>%
  rename(year = `ZI-WERT`) %>%
  spread(key = label, value = WERT) %>%
  mutate_at(vars(-year), funs(scales::rescale)) %>%
  ## gather(key = UNIT, value = WERT, -year) %>%
  ## filter(year %in% c(min(year), max(year))) %>%
  filter(year %in% c(1993, 2005, 2016)) %>%
  ggradar(font.radar = "sans",
          grid.label.size = 4,
          axis.label.size = 4,
          group.point.size = 1,
          group.line.width = 1,
          plot.extent.x.sf = 1.8) +
  scale_color_manual(values = c(
                       ## "#d2223e", # red
                                "#000000", # black
                                "gold", # black
                                ## "#ffc20e",  # yellow
                                "#F92672"
                                )) +
theme(
  legend.position = c(0.5, 0),
  legend.justification = "center",
  legend.direction = "horizontal",
  legend.text = element_text(size = 10),
  legend.background = element_rect(fill = NULL)
)
p
fig_path <- "../../../html/slides/nsoapi/assets/"
svg(file = file.path(fig_path, "genesis-radar.svg"),
    height=4.5, width = 8.5)
print(p)
dev.off()


bowerth/nsoApi documentation built on June 17, 2019, 4:55 a.m.