diff --git a/.Rbuildignore b/.Rbuildignore index e79efb0..61b9dae 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -9,3 +9,4 @@ ^docs$ ^pkgdown$ ^codecov\.yml$ +^cran-comments\.md$ diff --git a/DESCRIPTION b/DESCRIPTION index b61e471..8749078 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,19 +1,21 @@ Package: restatis -Title: R Wrapper for the GENESIS Web Service RESTful API of the German +Title: R Wrapper to access a wide range of Germany's Federal Statistical System + databases based on the GENESIS Web Service RESTful API of the German Federal Statistical Office (Statistisches Bundesamt/Destatis) -Version: 0.1.0 +Version: 0.2.0 Authors@R: c( - person("Yannik", "Buhl", role = "aut"), + person("Yannik", "Buhl", , "ybuhl@posteo.de", role = c("aut", "cre")), person("Zoran", "Kovacevic", role = "aut", comment = c(ORCID = "0009-0002-0156-0862")), person("Dorian", "Le Jeune", role = "aut"), - person("Long", "Nguyen", , "long.nguyen@uni-bielefeld.de", role = c("aut", "cre"), + person("Long", "Nguyen", , "long.nguyen@uni-bielefeld.de", role = "aut", comment = c(ORCID = "0000-0001-8878-7386")), person("Johannes", "Ritter", role = "aut") ) Description: A RESTful API wrapper for accessing the GENESIS database of - the German Federal Statistical Office (Destatis). Also supports data - search functions, credential management, result caching, and handling + the German Federal Statistical Office (Destatis) as well as its Census + Database and the database of Germany's regional statistics. Supports data + search functions, credential management, result caching, and handling remote background jobs for large datasets. License: MIT + file LICENSE URL: https://correlaid.github.io/restatis/ @@ -25,16 +27,19 @@ Imports: memoise, readr, tibble, - vctrs + vctrs, + purrr Suggests: httptest2, + usethis, knitr, rmarkdown, - testthat (>= 3.0.0) + testthat (>= 3.0.0), + rvest VignetteBuilder: knitr Config/testthat/edition: 3 Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.2 diff --git a/LICENSE b/LICENSE index 3806a85..f96b517 100644 --- a/LICENSE +++ b/LICENSE @@ -1,2 +1,2 @@ -YEAR: 2022 +YEAR: 2024 COPYRIGHT HOLDER: restatis authors diff --git a/NAMESPACE b/NAMESPACE index 8e6e8ff..0c42084 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,22 +1,27 @@ # Generated by roxygen2: do not edit by hand export(gen_alternative_terms) +export(gen_auth_get) export(gen_auth_save) export(gen_catalogue) export(gen_cube) +export(gen_download_job) export(gen_find) export(gen_list_jobs) +export(gen_logincheck) export(gen_metadata) export(gen_metadata_cube) -export(gen_metadata_stats) -export(gen_metadata_tab) -export(gen_metadata_val) -export(gen_metadata_var) +export(gen_metadata_statistic) +export(gen_metadata_table) +export(gen_metadata_value) +export(gen_metadata_variable) export(gen_modified_data) export(gen_objects2stat) export(gen_objects2var) export(gen_search_vars) +export(gen_signs) export(gen_table) +export(gen_update_evas) export(gen_val2var) export(gen_val2var2stat) export(gen_var2stat) diff --git a/R/data.R b/R/data.R index 67095ce..4e0532b 100644 --- a/R/data.R +++ b/R/data.R @@ -1,12 +1,11 @@ #' List of EVAS codes #' -#' @format ## `evas_list_long_20220724` -#' A data frame with 1,097 rows and 3 columns: +#' @format ## `evas_list` +#' A data frame with 1132 rows and 3 columns: #' \describe{ #' \item{EVAS}{EVAS code} #' \item{Beschreibung}{Details on the EVAS code} #' \item{Titel}{Alternative desription of EVAS code contents} -#' ... #' } #' @source -"evas_list_long_20220724" +"evas_list" diff --git a/R/gen_alternative_terms.R b/R/gen_alternative_terms.R index d2c27ca..0b14964 100644 --- a/R/gen_alternative_terms.R +++ b/R/gen_alternative_terms.R @@ -1,90 +1,131 @@ -#' gen_alternative_terms: Call For Similiar or Spelling Related Terms for Further Search +#' gen_alternative_terms #' -#' @description Function to find search terms that are similar or related to one another and also represented in Genesis. +#' @description Function to find search terms that are similar or related to one another in spelling and also represented in the GENESIS, Zensus 2022 or regionalstatistik.de databases. Important note: The API call is searching for terms with the same characters. To be useful in searching for related terms it is highly recommended to work with "*" placeholders (see examples). The placeholder can be placed before and/or after the search term. #' #' @param term Character string. Maximum length of 15 characters. Term or word for which you are searching for alternative or related terms. Use of '*' as a placeholder is possible to generate broader search areas. -#' @param similarity Logical. Indicator if the output of the function should be sorted based on a Levenshtein edit distance based on the \code{adist()} function. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param similarity Boolean. Indicator if the output of the function should be sorted based on a Levenshtein edit distance based on the \code{adist()} function. Default is 'TRUE'. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Attributes are added to the data.frame, describing the search configuration for the returned output. +#' @return A list with all recollected elements from the respective database. Attributes are added to the data.frame, describing the search configuration for the returned output. #' @export #' #' @examples #' \dontrun{ -#' # Find terms that are similar (in spelling) to search term "bus" +#' # Find terms at GENESIS that are the same (in spelling) to search term "bus" #' # and sort them by Levenshtein edit distance -#' object <- gen_alternative_terms(term = "bus", similarity = TRUE) +#' object <- gen_alternative_terms(term = "bus", similarity = TRUE, database = "genesis") #' -#' # Find terms that are related (in spelling) to search term "bus" -#' object <- gen_alternative_terms(term = "bus*", similarity = TRUE) +#' # Find terms at GENESIS that are related (in spelling) to search term "bus" +#' object <- gen_alternative_terms(term = "bus*", similarity = TRUE, database = "genesis") +#' +#' # Find terms at Zensus 2022 that are related (in spelling) to search term "wohn" +#' object <- gen_alternative_terms(term = "wohn*", similarity = TRUE, database = "zensus") #' } #' gen_alternative_terms <- function(term = NULL, similarity = TRUE, + database = c("all", "genesis", "zensus", "regio"), + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = TRUE, + text = verbose) + check_function_input(term = term, similarity = similarity, - caller = caller) - -#------------------------------------------------------------------------------- + caller = caller, + verbose = verbose) - results_raw <- gen_api("catalogue/terms", + #----------------------------------------------------------------------------- - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = term, - ...) + res <- lapply(gen_fun, function(db){ - results_json <- test_if_json(results_raw) + if (verbose) { - if (length(results_json$List) == 0) { + info <- paste("Started the processing of", rev_database_function(db), "database.") - stop("No related terms found for your code.", call. = FALSE) + message(info) - } else { + } - # similarity von Woertern berechnen und nach diesen Ordnen? - termslist <- c() + par_list <- list(endpoint = "catalogue/terms", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = term, + ...) - termslist <- lapply(results_json$List, function(x) { + results_raw <- do.call(db, par_list) - append(termslist, x$Content) + #--------------------------------------------------------------------------- - }) + results_json <- test_if_json(results_raw) - termslist <- lapply(termslist, function(x) { + if (length(results_json$List) == 0 & length(gen_fun) == 1) { - gsub("\\s+", " ", x) + stop("No related terms found for your code.", call. = FALSE) - }) + } else if (length(results_json$List) == 0 & length(gen_fun) > 1) { - termslist <- unlist(termslist) + termslist <- "No related terms found for your code." - if (isTRUE(similarity)) { + list_resp <- list("Output" = termslist) - # generalized levenstein edit distance - termslist <- termslist[order(utils::adist(term, - termslist, - ignore.case = TRUE))] } else { - # nchar order - termslist <- termslist[order(unlist(lapply(termslist, nchar)))] + # similarity von Woertern berechnen und nach diesen Ordnen? - } + termslist <- c() + + termslist <- lapply(results_json$List, function(x) { + + append(termslist, x$Content) + + }) + + termslist <- lapply(termslist, function(x) { + + gsub("\\s+", " ", x) + + }) - list_resp <- list("Output" = termslist) + termslist <- unlist(termslist) + + #------------------------------------------------------------------------- + + if (isTRUE(similarity)) { + + # generalized Levenshtein edit distance + termslist <- termslist[order(utils::adist(term, + termslist, + ignore.case = TRUE))] + } else { + + # nchar order + termslist <- termslist[order(unlist(lapply(termslist, nchar)))] + + } + + list_resp <- list("Output" = termslist) + + } attr(list_resp, "Term") <- term + attr(list_resp, "Database") <- rev_database_function(db) attr(list_resp, "Language") <- results_json$Parameter$language attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength attr(list_resp, "Copyright") <- results_json$Copyright return(list_resp) - } + }) + + res <- check_results(res) + + return(res) } diff --git a/R/gen_api.R b/R/gen_api.R index e11faf0..6410c3a 100644 --- a/R/gen_api.R +++ b/R/gen_api.R @@ -1,19 +1,84 @@ -#' Low-level function to interact with the Destatis GENESIS API +#' gen_api #' -#' @param endpoint Self-explanatory +#' @description Low-level function to interact with the GENESIS API +#' +#' @param endpoint Character string. The endpoint of the API that is to be queried. #' #' @importFrom httr2 `%>%` #' #' @noRd #' #' @examples +#' \dontrun{ #' gen_api("helloworld/logincheck") %>% #' httr2::resp_body_json() +#' } +#' gen_api <- function(endpoint, ...) { + httr2::request("https://www-genesis.destatis.de/genesisWS/rest/2020") %>% httr2::req_user_agent("https://github.com/CorrelAid/restatis") %>% httr2::req_url_path_append(endpoint) %>% - httr2::req_url_query(!!!gen_auth_get(), ...) %>% + httr2::req_url_query(!!!gen_auth_get(database = "genesis"), ...) %>% + httr2::req_retry(max_tries = 3) %>% + httr2::req_perform() + +} + +#------------------------------------------------------------------------------- + +#' gen_regio_api +#' +#' @description Low-level function to interact with the regionalstatistik.de API +#' +#' @param endpoint Character string. The endpoint of the API that is to be queried. +#' +#' @importFrom httr2 `%>%` +#' +#' @noRd +#' +#' @examples +#' \dontrun{ +#' gen_regio_api("helloworld/logincheck") %>% +#' httr2::resp_body_json() +#' } +#' +gen_regio_api <- function(endpoint, ...) { + + httr2::request("https://www.regionalstatistik.de/genesisws/rest/2020/") %>% + httr2::req_user_agent("https://github.com/CorrelAid/restatis") %>% + httr2::req_url_path_append(endpoint) %>% + httr2::req_url_query(!!!gen_auth_get(database = "regio"), ...) %>% + httr2::req_retry(max_tries = 3) %>% + httr2::req_perform() + +} + +#------------------------------------------------------------------------------- + +#' gen_zensus_api +#' +#' @description Low-level function to interact with the Zensus 2022 database +#' +#' @param endpoint Character string. The endpoint of the API that is to be queried. +#' +#' @importFrom httr2 `%>%` +#' +#' @noRd +#' +#' @examples +#' \dontrun{ +#' gen_zensus_api("helloworld/logincheck") %>% +#' httr2::resp_body_json() +#' } +#' +gen_zensus_api <- function(endpoint, ...) { + + httr2::request("https://ergebnisse.zensus2022.de/api/rest/2020") %>% + httr2::req_user_agent("https://github.com/CorrelAid/restatis") %>% + httr2::req_url_path_append(endpoint) %>% + httr2::req_url_query(!!!gen_auth_get(database = "zensus"), ...) %>% httr2::req_retry(max_tries = 3) %>% httr2::req_perform() + } diff --git a/R/gen_auth.R b/R/gen_auth.R index c888b0f..fac3507 100644 --- a/R/gen_auth.R +++ b/R/gen_auth.R @@ -1,77 +1,338 @@ -#' Save authentication +#' gen_auth_save #' -#' See Details. +#' @description Save credentials of the different databases for further convenient use #' -#' Genesis username and password are encrypted and saved as RDS in the -#' package config directory. +#' @param database Character string. The database to store credentials for ('all', 'genesis', 'zensus' or 'regio'). #' -#' A random string is generated and stored in the session environment -#' variable `RESTATIS_KEY`. This string is used as the key to encrypt and -#' decrypt the entered Genesis credentials. -#' -#' To avoid having to save authentication in future sessions, `RESTATIS_KEY` can -#' be added to .Renviron. The usethis package includes a helper function for -#' editing .Renviron files from an R session with [usethis::edit_r_environ()]. +#' @details Username and password are encrypted and saved as RDS in the +#' package config directory. A random string is generated and stored in the +#' session environment variable `GENESIS_KEY`. This string is used as the key +#' to encrypt and decrypt the entered credentials. To avoid havding to save +#' authentication in future sessions, `GENESIS_KEY` can be added to .Renviron. +#' The usethis package includes a helper function for editing .Renviron files +#' from an R session with [usethis::edit_r_environ()]. #' #' @export -gen_auth_save <- function() { +#' +#' @examples +#' \dontrun{ +#' gen_auth_save("zensus") +#' } +#' +#' +gen_auth_save <- function(database = c("all", "genesis", "zensus", "regio")) { + + if (missing(database)) stop("You have to specify a value for parameter 'database'.", + call. = FALSE) + + #----------------------------------------------------------------------------- + + if (database %in% c("genesis", "regio")) { + + insert_and_save_credentials(database) + + gen_logincheck(database = database) + + #----------------------------------------------------------------------------- + + } else if (database == "zensus"){ + + insert_and_save_credentials("zensus") + + gen_logincheck(database = "zensus") + + } else if (database == "all"){ + + #--------------------------------------------------------------------------- + + message("~~ Saving credentials for the 'genesis' database.") + + insert_and_save_credentials("genesis") - username <- gen_auth_ask("username") - password <- gen_auth_ask("password") + gen_logincheck(database = "genesis") - auth_path <- gen_auth_path("auth.rds") + #------------------------------------------------------------------------- - key <- httr2::secret_make_key() + message("~~ Saving credentials for the Zensus 2022 database.\n") - Sys.setenv(RESTATIS_KEY = key) + insert_and_save_credentials("zensus") - message( - "Saving credentials to ", - auth_path, - "\n\n", - "Please add the following line to your .Renviron, ", - "e.g. via `usethis::edit_r_environ()`, ", - "to use the specified username and password across sessions:\n\n", - "RESTATIS_KEY=", - key, - "\n\n" - ) + gen_logincheck(database = "zensus") - dir.create(gen_auth_path(), showWarnings = FALSE, recursive = TRUE) + #------------------------------------------------------------------------- + + message("~~ Saving credentials for regionalstatistik.de database.") + + insert_and_save_credentials("regio") + + gen_logincheck(database = "regio") + + #----------------------------------------------------------------------------- + + } else { + + stop("Invalid 'database' argument. Please choose 'all', 'genesis', 'zensus' or 'regio'.", + call. = FALSE) + + } - httr2::secret_write_rds( - list(username = username, password = password), - path = auth_path, - key = "RESTATIS_KEY" - ) } -gen_auth_get <- function() { +#------------------------------------------------------------------------------- + +#' gen_auth_get +#' +#' @description Function to retrieve the credentials stored via \code{gen_auth_save()} +#' +#' @param database Character string. The database to get the credentials for ('all', 'genesis', 'zensus' and 'regio'). +#' +#' @return Credentials for the database(s) chosen by the user +#' @export +#' +#' @examples +#' \dontrun{ +#' gen_auth_get("all") +#' } +#' +#' +gen_auth_get <- function(database = c("all", "genesis", "zensus", "regio")) { + + #----------------------------------------------------------------------------- - auth_path <- gen_auth_path("auth.rds") + if (length(database) == 1) { + + if (!(database %in% c("all", "genesis", "zensus", "regio"))) { + + stop("Misspecification of parameter 'database': Must only be 'all', 'genesis', 'zensus' or 'regio'.", + call. = FALSE) + + } - if (!(file.exists(auth_path) && nzchar(Sys.getenv("RESTATIS_KEY")))) { - stop( - "Genesis credentials not found.\n", - "Please run `gen_auth_save()` to store Genesis username and password.\n", - call. = FALSE - ) } - httr2::secret_read_rds(auth_path, "RESTATIS_KEY") + #----------------------------------------------------------------------------- + + if (length(database) > 1) { + + if ("all" %in% database) { + + stop("If you want to specify 'all', do not specify further databases (i.e., just set database to 'all').", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (!all(database %in% c("genesis", "zensus", "regio"))) { + + stop("Misspecification of parameter 'database': Must only be 'genesis', 'zensus' or 'regio'.", + call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + + if (length(database) == 1) { + + #--------------------------------------------------------------------------- + + if (database == "genesis") { + + auth_path <- gen_auth_path("auth_genesis.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("GENESIS_KEY")))) { + + stop(paste0("GENESIS database credentials not found. ", + "Please run 'gen_auth_save()' to store GENESIS database username and password."), + call. = FALSE) + + } + + return(httr2::secret_read_rds(auth_path, "GENESIS_KEY")) + + #--------------------------------------------------------------------------- + + } else if (database == "zensus") { + + auth_path <- gen_auth_path("auth_zensus.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("ZENSUS_KEY")))) { + + stop(paste0("Zensus 2022 database credentials not found. ", + "Please run 'gen_auth_save()' to store Zensus 2022 database username and password."), + call. = FALSE) + + } + + return(httr2::secret_read_rds(auth_path, "ZENSUS_KEY")) + + #------------------------------------------------------------------------------- + + } else if (database == "regio") { + + auth_path <- gen_auth_path("auth_regio.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("REGIO_KEY")))) { + + stop(paste0("regionalstatistik.de database credentials not found. ", + "Please run 'gen_auth_save()' to store regionalstatistik.de database username and password."), + call. = FALSE) + + } + + return(httr2::secret_read_rds(auth_path, "REGIO_KEY")) + + #----------------------------------------------------------------------------- + + } else if (database == "all") { + + auth_path <- gen_auth_path("auth_genesis.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("GENESIS_KEY")))) { + + stop(paste0("GENESIS database credentials not found. ", + "Please run 'gen_auth_save()' to store GENESIS database username and password."), + call. = FALSE) + + } + + message("Credentials for database GENESIS:\n") + print(httr2::secret_read_rds(auth_path, "GENESIS_KEY")) + + #--------------------------------------------------------------------------- + + auth_path <- gen_auth_path("auth_zensus.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("ZENSUS_KEY")))) { + + stop(paste0("Zensus 2022 database credentials not found. ", + "Please run 'gen_auth_save()' to store Zensus 2022 database username and password."), + call. = FALSE) + + } + + message("Credentials for database Zensus 2022:\n") + print(httr2::secret_read_rds(auth_path, "ZENSUS_KEY")) + + #--------------------------------------------------------------------------- + + auth_path <- gen_auth_path("auth_regio.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("REGIO_KEY")))) { + + stop(paste0("regionalstatistik.de database credentials not found. ", + "Please run 'gen_auth_save()' to store regionalstatistik.de database username and password."), + call. = FALSE) + + } + + message("Credentials for database regionalstatistik.de:\n") + print(httr2::secret_read_rds(auth_path, "REGIO_KEY")) + + } # End of 'else if (database == "all")' + + } # End of 'if (length(database) == 1) ' + + #----------------------------------------------------------------------------- + + if (length(database) > 1) { + + if ("genesis" %in% database) { + + auth_path <- gen_auth_path("auth_genesis.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("GENESIS_KEY")))) { + + stop(paste0("GENESIS database credentials not found. ", + "Please run 'gen_auth_save()' to store GENESIS database username and password."), + call. = FALSE) + + } + + message("Credentials for database GENESIS:\n") + print(httr2::secret_read_rds(auth_path, "GENESIS_KEY")) + + } + + #--------------------------------------------------------------------------- + + if ("zensus" %in% database) { + + auth_path <- gen_auth_path("auth_zensus.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("ZENSUS_KEY")))) { + + stop(paste0("Zensus 2022 database credentials not found. ", + "Please run 'gen_auth_save()' to store Zensus 2022 database username and password."), + call. = FALSE) + + } + + message("Credentials for database Zensus 2022:\n") + print(httr2::secret_read_rds(auth_path, "ZENSUS_KEY")) + + } + + #--------------------------------------------------------------------------- + + if ("regio" %in% database) { + + auth_path <- gen_auth_path("auth_regio.rds") + + if (!(file.exists(auth_path) && nzchar(Sys.getenv("REGIO_KEY")))) { + + stop(paste0("regionalstatistik.de database credentials not found. ", + "Please run 'gen_auth_save()' to store regionalstatistik.de database username and password."), + call. = FALSE) + + } + + message("Credentials for database regionalstatistik.de:\n") + print(httr2::secret_read_rds(auth_path, "REGIO_KEY")) + + } + + #--------------------------------------------------------------------------- + + } # End of '(length(database) > 1)' + } +#------------------------------------------------------------------------------- + +#' gen_auth_ask +#' +#' @param credential_type Character string. Type of credential to ask for +#' +#' @return The user response +#' gen_auth_ask <- function(credential_type) { + val <- askpass::askpass(paste0("Please enter your ", credential_type, ": ")) if (is.null(val)) { - stop("Cancelled by user", call. = FALSE) + + stop("Cancelled by user.", call. = FALSE) + } - val + return(val) + } +#------------------------------------------------------------------------------- + +#' gen_auth_path +#' +#' @param ... Optional arguments for file.path() +#' +#' @return A file path for the storage of config files +#' gen_auth_path <- function(...) { - file.path(tools::R_user_dir("restatis", "config"), ...) + + return(file.path(tools::R_user_dir("restatis", "config"), ...)) + } diff --git a/R/gen_catalogue.R b/R/gen_catalogue.R index 4e08a0a..594cd0f 100644 --- a/R/gen_catalogue.R +++ b/R/gen_catalogue.R @@ -1,20 +1,24 @@ -#' catalogue: Explore Different Objects and Their Structural Embedding in Genesis +#' gen_catalogue #' -#' Function to enable searching for tables, statistics, and cubes from Genesis. Additionally, it structures the output based on the internal tree structure of Genesis itself based on the EVAS-numbers. Time-series are represented as cubes with a specified time span. +#' @description Function to search for tables, statistics, and cubes from GENESIS, Zensus 2022 or regionalstatistik.de. Additionally, it structures the output based on the internal tree structure based on the EVAS-numbers. Time-series are represented as cubes with a specified time span. Important note: To be useful in searching for objects it is highly recommended to work with "*" placeholders (see examples). The placeholder can be placed before and/or after the search term. #' -#' @param code a string with a maximum length of 10 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possible. -#' @param category a string. Specific Genesis-Object-types: 'tables', 'statistics', and 'cubes'. All three together are possible. -#' @param detailed a logical. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code String with a maximum length of 15 characters for a database object (GENESIS and regionalstatistik.de) and 15 characters for a Zensus 2022 object. Only one code per iteration. "*" notations are possible. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param category Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis API. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples #' \dontrun{ -#' # Scroll through Objects under the topic "12*" -#' # which is "Bevölkerung" in Destatis from all categories and +#' # Scroll through objects under the topic "12*" +#' # which is "Bevoelkerung" in GENESIS from all categories and #' # with a detailed output #' object <- gen_catalogue(code = "12*", detailed = T) #' @@ -24,230 +28,290 @@ #' } #' gen_catalogue <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "statistics", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(code = code, category = category, detailed = detailed, error.ignore = error.ignore, - caller = caller) + database = gen_fun, + sortcriterion = sortcriterion, + caller = caller, + verbose = verbose) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + sortcriterion <- match.arg(sortcriterion) #----------------------------------------------------------------------------- - # Processing #### - if ("cubes" %in% category) { + # Processing # + res <- lapply(gen_fun, function(db){ - results_raw <- gen_api("catalogue/cubes", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - ...) + if (isTRUE(verbose)) { - results_json <- test_if_json(results_raw) + info <- paste("Started the processing of", rev_database_function(db), "database.") - empty_object <- test_if_error(results_json, para = error.ignore) + message(info) - if(isTRUE(empty_object)){ + } - list_of_cubes <- "No 'cubes' object found for your request." + #--------------------------------------------------------------------------- - } else if(isFALSE(empty_object)){ + if ("cubes" %in% category && db == "gen_zensus_api") { - list_of_cubes <- results_json$Status$Content + list_of_cubes <- "There are generally no 'cubes' objects available for the 'zensus' database." - } else if(empty_object == "DONE"){ + } else if ("cubes" %in% category && (db == "gen_api" | db == "gen_regio_api")) { - if (isTRUE(detailed)) { + results_raw <- do.call(db, + list(endpoint = "catalogue/cubes", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + sortcriterion = sortcriterion, + area = area, + ...)) - list_of_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Time", - "LatestUpdate", - "State", - "Information")) + results_json <- test_if_json(results_raw) - } else { + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - list_of_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + if (isTRUE(empty_object)){ + list_of_cubes <- "No 'cubes' object found for your request." + } else if (isFALSE(empty_object)){ - } + list_of_cubes <- results_json$Status$Content - list_of_cubes$Object_Type <- "Cube" + } else if (empty_object == "DONE"){ - list_of_cubes <- tibble::as_tibble(list_of_cubes) + if (isTRUE(detailed)) { - } - } + list_of_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Time", + "LatestUpdate", + "State", + "Information")) + } else { - #----------------------------------------------------------------------------- + list_of_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) - if ("statistics" %in% category) { + } - results_raw <- gen_api("catalogue/statistics", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - ...) + list_of_cubes$Object_Type <- "cube" - results_json <- test_if_json(results_raw) + list_of_cubes <- tibble::as_tibble(list_of_cubes) - empty_object <- test_if_error(results_json, para = error.ignore) + } - if(isTRUE(empty_object)){ + } - list_of.stats <- "No 'statistics' object found for your request." + #--------------------------------------------------------------------------- - } else if(isFALSE(empty_object)){ + if ("statistics" %in% category) { - list_of.stats <- results_json$Status$Content + par_list <- list(endpoint = "catalogue/statistics", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + sortcriterion = sortcriterion, + ...) - } else if(empty_object == "DONE"){ + results_raw <- do.call(db, par_list) - if (isTRUE(detailed)) { + results_json <- test_if_json(results_raw) - list_of.stats <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Cubes", - "Information")) + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + if (isTRUE(empty_object)){ - } else { + list_of_stats <- "No 'statistics' object found for your request." - list_of.stats <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + } else if (isFALSE(empty_object)){ + list_of_stats <- results_json$Status$Content + } else if (empty_object == "DONE"){ - } + if (isTRUE(detailed)) { + + list_of_stats <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Cubes", + "Information")) + + } else { - list_of.stats$Object_Type <- "Statistic" + list_of_stats <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + } - list_of.stats <- tibble::as_tibble(list_of.stats) + list_of_stats$Object_Type <- "statistic" + + list_of_stats <- tibble::as_tibble(list_of_stats) + + } } - } + #--------------------------------------------------------------------------- + if ("tables" %in% category) { - #----------------------------------------------------------------------------- + par_list <- list(endpoint = "catalogue/tables", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + area = area, + sortcriterion = sortcriterion, + ...) - if ("tables" %in% category) { + results_raw <- do.call(db, par_list) - results_raw <- gen_api("catalogue/tables", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - ...) + results_json <- test_if_json(results_raw) - results_json <- test_if_json(results_raw) + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - empty_object <- test_if_error(results_json, para = error.ignore) + if (isTRUE(empty_object)){ - if(isTRUE(empty_object)){ + list_of_tabs <- "No 'tables' object found for your request." - list_of.tabs <- "No 'tables' object found for your request." + } else if (isFALSE(empty_object)){ - } else if(isFALSE(empty_object)){ + list_of_tabs <- results_json$Status$Content - list_of.tabs <- results_json$Status$Content + } else if (empty_object == "DONE"){ - } else if(empty_object == "DONE"){ + if (isTRUE(detailed)) { - if (isTRUE(detailed)) { + list_of_tabs <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Time")) - list_of.tabs <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Time")) + } else { + list_of_tabs <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) - } else { + } - list_of.tabs <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + list_of_tabs$Object_Type <- "table" + list_of_tabs <- tibble::as_tibble(list_of_tabs) + + } } - list_of.tabs$Object_Type <- "Table" + #--------------------------------------------------------------------------- + # Summary # - list_of.tabs <- tibble::as_tibble(list_of.tabs) + if (all(c("tables", "statistics", "cubes") %in% category)) { - } - } + list_resp <- list("Cubes" = if(length(list_of_cubes) == 1){tibble::as_tibble(list_of_cubes)} else {forming_evas(list_of_cubes)}, + "Statistics" = if(length(list_of_stats) == 1){tibble::as_tibble(list_of_stats)} else {forming_evas(list_of_stats)}, + "Tables" = if(length(list_of_tabs) == 1){tibble::as_tibble(list_of_tabs)} else {forming_evas(list_of_tabs)}) - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- + } else if ("cubes" %in% category) { - # Summary #### - if (all(c("tables", "statistics", "cubes") %in% category)) { + if (length(list_of_cubes) == 1 && db == "gen_zensus_api"){ - list_resp <- list( - "Cubes" = if(length(list_of_cubes) == 1){list_of_cubes} else {list("A" = forming_evas(list_of_cubes))}, - "Statistics" = if(length(list_of.stats) == 1){list_of.stats} else {list("B" = forming_evas(list_of.stats))}, - "Tables" = if(length(list_of.tabs) == 1){list_of.tabs} else {list("C" = forming_evas(list_of.tabs))} - ) + list_resp <- list_of_cubes - } else if (category == "cubes") { + } else if (length(list_of_cubes) == 1 ){ - if(length(list_of_cubes) == 1){ + list_resp <- list("Cubes" = tibble::as_tibble(list_of_cubes)) - list_resp <- list("Output" = list_of_cubes) + } else { - } else { + list_resp <- list("Cubes" = forming_evas(list_of_cubes)) - list_resp <- list("Output" = forming_evas(list_of_cubes)) + } - } + #--------------------------------------------------------------------------- + } else if ("statistics" %in% category) { - } else if (category == "statistics") { + if (length(list_of_stats) == 1 ){ - if(length(list_of.stats) == 1){ + list_resp <- list("Statistics" = tibble::as_tibble(list_of_stats)) - list_resp <- list("Output" = list_of.stats) + } else { - } else { + list_resp <- list("Statistics" = forming_evas(list_of_stats)) + + } + + + #--------------------------------------------------------------------------- + } else if ("tables" %in% category) { - list_resp <- list("Output" = forming_evas(list_of.stats)) + if(length(list_of_tabs) == 1 ){ + + list_resp <- list("Tables" = tibble::as_tibble(list_of_tabs)) + + } else { + + list_resp <- list("Tables" = forming_evas(list_of_tabs)) + + } } - } else if (category == "tables") { + #--------------------------------------------------------------------------- - if(length(list_of.tabs) == 1){ + attr(list_resp, "Code") <- code + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Category") <- category - list_resp <- list("Output" = list_of.tabs) + if (length(category) == 1 && "cubes" %in% category && db == "gen_zensus_api"){ + + attr(list_resp, "Info") <- "NO API call done" } else { - list_resp <- list("Output" = forming_evas(list_of.tabs)) + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright } - } + return(list_resp) + + }) + + #----------------------------------------------------------------------------- - attr(list_resp, "Code") <- results_json$Parameter$selection - attr(list_resp, "Category") <- category - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + res <- check_results(res) - return(list_resp) + return(res) } diff --git a/R/gen_cube.R b/R/gen_cube.R index e578057..8c45065 100644 --- a/R/gen_cube.R +++ b/R/gen_cube.R @@ -1,38 +1,39 @@ #' gen_cube #' -#' @description Download a cube with data from Genesis +#' @description Download a cube with data from GENESIS or regionalstatistik.de database #' -#' @param name Name of the data cube -#' @param ... Optional parameters passed on to the Genesis API call: +#' @param name Character string for a cube object (only GENESIS and regionalstatistik.de) +#' @param ... Further (optional) parameters passed on to the API call: #' \describe{ -#' \item{\code{area}}{a string. The area in which the table is stored. Possible values: +#' \item{\code{area}}{Character string. The area in which the table is stored. Possible values: #' \itemize{ #' \item \code{"public"}: cube in the public catalogue #' \item \code{"user"}: cube in the user's account +#' \item \code{"all"}: both of the above #' }} -#' \item{\code{values}}{a logical. Should values be included?} -#' \item{\code{metadata}}{a logical. Should metadata be included?} -#' \item{\code{additionals}}{a logical. Should additional metadata be included?} -#' \item{\code{contents}}{a string. Names of required statistical specifications} -#' \item{\code{startyear,endyear}}{a number. Only retrieve data between these years.} -#' \item{\code{timeslices}}{a number. Number of timeslices (cumulative to startyear or endyear)} -#' \item{\code{regionalvariable}}{character. Code of the regional variable +#' \item{\code{values}}{Boolean. Should values be included?} +#' \item{\code{metadata}}{Boolean. Should metadata be included?} +#' \item{\code{additionals}}{Boolean. Should additional metadata be included?} +#' \item{\code{contents}}{Character string. Names of required statistical specifications} +#' \item{\code{startyear,endyear}}{Four-digit integers. Only retrieve data between these years.} +#' \item{\code{timeslices}}{Integer. Number of timeslices (cumulative to startyear or endyear)} +#' \item{\code{regionalvariable}}{Character string. Code of the regional variable #' whose value is specified in \code{regionalkey} to filter the results.} -#' \item{\code{regionalkey}}{character. One or more regional keys. Multiple +#' \item{\code{regionalkey}}{Character string. One or more regional keys. Multiple #' values can be supplied as a character vector or as a single string, #' with the regional keys separated by commas. Use of wildcard (`*`) allowed.} #' \item{\code{classifyingvariable1,classifyingvariable2 -#' ,classifyingvariable3}}{character. Code of the subject classification +#' ,classifyingvariable3}}{Character string. Code of the subject classification #' (SK-Merkmal) to which the selection by means of the corresponding #' `classifyingkey` parameter is to be applied.} -#' \item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{character. +#' \item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{Character string. #' One or more values of a subject classification (e.g. "WZ93012"). Applied #' to the corresponding `classifyingvariable` parameter. Multiple #' keys can be supplied as a character vector or as a single string, #' with the keys separated by commas. Use of wildcard (`*`) allowed.} -#' \item{\code{stand}}{a string \code{"DD.MM.YYYY"}. Only retrieve data -#' updated after this #' date.} -#' \item{\code{language}}{Search terms, returned messages and data +#' \item{\code{stand}}{Character string, format: \code{"DD.MM.YYYY"}. Only retrieve data +#' updated after this date.} +#' \item{\code{language}}{Character string. Search terms, returned messages and data #' descriptions in German (`"de"`) or English (`"en"`)?} #' } #' @@ -52,6 +53,7 @@ gen_cube <- function(name, ...) { #------------------------------------------------------------------------------- gen_cube_ <- function(name, + database = c("genesis", "regio"), area = c("public", "user"), values = TRUE, metadata = TRUE, @@ -72,13 +74,17 @@ gen_cube_ <- function(name, language = Sys.getenv("GENESIS_LANG")) { area <- match.arg(area) + database <- match.arg(database) if (!isTRUE(language == "en")) { + area <- switch(area, public = "\u00F6ffentlich", user = "benutzer") + } param_check_year(startyear) param_check_year(endyear) + param_check_regionalkey(regionalkey) contents <- param_collapse_vec(contents) regionalkey <- param_collapse_vec(regionalkey) @@ -86,40 +92,82 @@ gen_cube_ <- function(name, classifyingkey2 <- param_collapse_vec(classifyingkey2) classifyingkey3 <- param_collapse_vec(classifyingkey3) - cube <- gen_api("data/cubefile", name = name, - name = name, - area = area, - values = values, - metadata = metadata, - additionals = additionals, - startyear = startyear, - endyear = endyear, - timeslices = timeslices, - contents = contents, - regionalvariable = regionalvariable, - regionalkey = regionalkey, - classifyingvariable1 = classifyingvariable1, - classifyingkey1 = classifyingkey1, - classifyingvariable2 = classifyingvariable2, - classifyingkey2 = classifyingkey2, - classifyingvariable3 = classifyingvariable3, - classifyingkey3 = classifyingkey3, - stand = stand, - language = language, - job = FALSE) %>% - - read_cube() %>% - rename_cube_data_columns() - - structure( - cube$QEI, - metadata = cube[names(cube) != "QEI"] - ) + #----------------------------------------------------------------------------- + + if (database == "genesis") { + + cube_raw <- gen_api("data/cubefile", + name = name, + area = area, + values = values, + metadata = metadata, + additionals = additionals, + startyear = startyear, + endyear = endyear, + timeslices = timeslices, + contents = contents, + regionalvariable = regionalvariable, + regionalkey = regionalkey, + classifyingvariable1 = classifyingvariable1, + classifyingkey1 = classifyingkey1, + classifyingvariable2 = classifyingvariable2, + classifyingkey2 = classifyingkey2, + classifyingvariable3 = classifyingvariable3, + classifyingkey3 = classifyingkey3, + stand = stand, + language = language, + job = FALSE) + + #----------------------------------------------------------------------------- + + } else if (database == "regio") { + + cube_raw <- gen_regio_api("data/cubefile", + name = name, + area = area, + values = values, + metadata = metadata, + additionals = additionals, + startyear = startyear, + endyear = endyear, + timeslices = timeslices, + contents = contents, + regionalvariable = regionalvariable, + regionalkey = regionalkey, + classifyingvariable1 = classifyingvariable1, + classifyingkey1 = classifyingkey1, + classifyingvariable2 = classifyingvariable2, + classifyingkey2 = classifyingkey2, + classifyingvariable3 = classifyingvariable3, + classifyingkey3 = classifyingkey3, + stand = stand, + language = language, + job = FALSE) + + } else { + + stop("Wrong specification of parameter 'database' (must only be 'regio' or 'genesis').", + call. = FALSE) + + } + + #------------------------------------------------------------------------------- + + cube <- cube_raw %>% read_cube() %>% rename_cube_data_columns() + + structure(cube$QEI, + metadata = cube[names(cube) != "QEI"]) + } #------------------------------------------------------------------------------- +#' read_cube +#' +#' @param resp API response object resulting from a call to 'data/cubefile' +#' read_cube <- function(resp) { + cube_str <- resp %>% httr2::resp_body_string() %>% readr::read_lines() @@ -133,37 +181,61 @@ read_cube <- function(resp) { parsed <- lapply(parsed, `attr<-`, "block_name", NULL) stats::setNames(parsed, block_names) + } #------------------------------------------------------------------------------- +#' split_cube +#' +#' @param lines Lines to split a cube +#' split_cube <- function(lines) { + block_idx <- ifelse(is_cube_metadata_header(lines), seq_along(lines), NA) + block_idx <- vctrs::vec_fill_missing(block_idx, "down") unname(split(lines, block_idx)) + } #------------------------------------------------------------------------------- +#' is_cube_metadata_header +#' +#' @param lines Lines to check for header +#' is_cube_metadata_header <- function(lines) { + startsWith(lines, "K") + } #------------------------------------------------------------------------------- +#' read_cube_block +#' +#' @param lines Lines to read as header +#' read_cube_block <- function(lines) { + header <- read_cube_metadata_header(lines[1]) - structure( - read_cube_data_lines(lines[-1], header$cols), - block_name = header$block_name - ) + structure(read_cube_data_lines(lines[-1], header$cols), + block_name = header$block_name) + } #------------------------------------------------------------------------------- +#' read_cube_metadata_header +#' +#' @param line Line to read +#' @param rename_dups Rename duplicates? +#' read_cube_metadata_header <- function(line, rename_dups = TRUE) { + stopifnot(length(line) == 1L) line_splitted <- strsplit(line, ";", fixed = TRUE)[[1]] @@ -171,32 +243,44 @@ read_cube_metadata_header <- function(line, rename_dups = TRUE) { block_name <- line_splitted[2] col_names <- line_splitted[3:length(line_splitted)] + col_names <- col_names[!col_names %in% c("\"nur Werte\"", "\"mit Werten\"")] if (rename_dups) col_names <- make.unique(col_names) list(block_name = block_name, cols = col_names) + } #------------------------------------------------------------------------------- +#' read_cube_data_lines +#' +#' @param lines Lines to read data from +#' @param col_names Specify column names +#' read_cube_data_lines <- function(lines, col_names) { + lines <- sub("D;", "", lines, fixed = TRUE) class(lines) <- "AsIs" # so that vroom treats lines as literal data - readr::read_delim( - lines, - delim = ";", - col_names = col_names, - name_repair = "minimal", - show_col_types = FALSE - ) + readr::read_delim(lines, + delim = ";", + col_names = col_names, + name_repair = "minimal", + show_col_types = FALSE) + } #------------------------------------------------------------------------------- +#' rename_cube_data_columns +#' +#' @param cube A cube object to rename the columns in +#' rename_cube_data_columns <- function(cube) { + data_cols <- names(cube$QEI) # Datenquader-Achsen @@ -217,12 +301,12 @@ rename_cube_data_columns <- function(cube) { suffix = dqi_default_names, feature_name = cube$DQI$NAME )[, c("feature_name", "suffix")], - MoreArgs = list(sep = "_") - )) + MoreArgs = list(sep = "_"))) data_cols[data_cols %in% dqi_cols] <- dqi_cols_new names(cube$QEI) <- data_cols - cube + return(cube) + } diff --git a/R/gen_find.R b/R/gen_find.R index 42639f3..2fd9ac9 100644 --- a/R/gen_find.R +++ b/R/gen_find.R @@ -1,821 +1,577 @@ #' gen_find #' -#' @description Function to search through Genesis. It is similar in usage as the search function on the Destatis main page (https://www.destatis.de/DE/Home/_inhalt.html). -#' In the search query, "UND" (german word for: and; can also be written "und" or "&") as well as "ODER" (german word for: or; can also be written "oder" or "|") can be included and logically combined. Furthermore, wildcards are possible by including "*". If more then one word is included in the term-string, automatically "and" is used to combine the different words. -#' Important note: Time-series are treated as cubes, they are not longer distinguished. If you want to find a specific object with a clear code with this find function, you need to specify the object type or search for all object types. +#' @description Function to search through the databases GENESIS, Zensus 2022 and regionalstatistik.de. It is similar in usage as the search function on the GENESIS main page (https://www-genesis.destatis.de/genesis/online). +#' In the search query, "UND" (German word for 'and', also written "und" or "&") as well as "ODER" (German word for 'or', also written "oder" or "|") can be included and logically combined. Furthermore, wildcards are possible by including "*". If more then one word is included in the term string, 'and' is used automatically to combine the different words. +#' Important note: Time-series are treated as cubes in GENESIS and regionalstatistik.de, they are not longer distinguished. If you want to find a specific object with a clear code with this find function, you need to specify the object type or search for all object types. #' -#' @param term A string with no maximum character length, but a word limit of five words. -#' @param category A string. Specific object types: 'tables', 'statistics', 'variables', and 'cubes'. Using all together is possible. Default option are 'all' objects. -#' @param detailed A logical. Indicator if the function should return the detailed output of the iteration including all object related information or only a shortened output including only code and object title. Default Option is FALSE. -#' @param ordering A logical. Indicator if the function should return the output of the iteration ordered first based on the fact if the searched term is appearing in the title of the object and secondly on an estimator of the number of variables in this object. Default option is TRUE. -#' @param error.ignore A logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce an artificial response (e.g., for complex processes not to fail). -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param term A character string with no maximum character length, but a word limit of five words. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param category Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param ordering A logical. Indicator if the function should return the output of the iteration ordered first based on the fact if the searched term is appearing in the title of the object and secondly on an estimator of the number of variables in this object. Default option is 'TRUE'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all elements retrieved from Genesis. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples #' \dontrun{ -#' # Find objects related to "bus" in Genesis +#' # Find objects related to "bus" in GENESIS #' object <- gen_find(term = "bus") #' -#' # Find tables related to "bus" in Genesis and return a unordered detailed output +#' # Find tables related to "bus" in GENESIS and return a unordered detailed output #' object <- gen_find(term = "bus", detailed = TRUE, ordering = FALSE) #' -#' # Find tables related to "Autos" or "Corona" in Genesis and return a unordered detailed output +#' # Find tables related to "Autos" or "Corona" in GENESIS and return a unordered detailed output #' object <- gen_find(term = "autos ODER corona", detailed = TRUE, ordering = FALSE) #' -#' #' # Find tables related to "Autos" and "Corona" in Genesis and return a unordered detailed output +#' #' # Find tables related to "Autos" and "Corona" in GENESIS and return a unordered detailed output #' object <- gen_find(term = "autos UND corona", detailed = TRUE, ordering = FALSE) #' } #' gen_find <- function(term = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("all", "tables", "statistics", "variables", "cubes"), detailed = FALSE, ordering = TRUE, - error.ignore = FALSE, + error.ignore = TRUE, + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(term = term, category = category, detailed = detailed, ordering = ordering, error.ignore = error.ignore, - caller = caller) + database = gen_fun, + caller = caller, + verbose = verbose) category <- match.arg(category) #----------------------------------------------------------------------------- - results_raw <- gen_api("find/find", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - term = term, - category = category, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error_find(results_json, para = error.ignore) - - empty_object <- test_if_process_further(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - list_resp <- list("Output" = "No object found for your request.") - - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) - - } else if (isFALSE(empty_object)){ - - list_resp <- list("Output" = results_json$Status$Content) - - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) - - } else if (empty_object == "DONE") { - - if (detailed == TRUE) { - - #----------------------------------------------------------------------------- - - if (category == "all") { - - df_table <- binding_lapply(results_json$Tables, - characteristics = c("Code", - "Content", - "Time")) + res <- lapply(gen_fun, function(db){ - df_table$Spezifisch <- ggsub(df_table) + if (verbose) { - df_table$Variablen <- spezifisch_create(df_table) + info <- paste("Started the processing of", rev_database_function(db), "database.") - df_table$Object_Type <- "Table" + message(info) - #------------------------------------------------------------------------- - - df_stats <- binding_lapply(results_json$Statistics, - characteristics = c("Code", - "Content", - "Information", - "Cubes")) - - df_stats$Spezifisch <- ggsub(df_stats) - - df_stats$Variablen <- spezifisch_create(df_stats) - - df_stats$Object_Type <- "Statistic" - - #------------------------------------------------------------------------- - - df_variables <- binding_lapply(results_json$Variables, - characteristics = c("Code", - "Content", - "Type", - "Values", - "Information")) - - df_variables$Spezifisch <- ggsub(df_variables) - - df_variables$Variablen <- spezifisch_create(df_variables) - - df_variables$Object_Type <- "Variable" - - #------------------------------------------------------------------------- + } - df_cubes <- binding_lapply(results_json$Cubes, - characteristics = c("Code", - "Content", - "Time", - "LatestUpdate", - "State", - "Information")) + #--------------------------------------------------------------------------- - df_cubes$Spezifisch <- ggsub(df_cubes) + if (db == "gen_zensus_api" && category == "cubes") { - df_cubes$Variablen <- spezifisch_create(df_cubes) + empty_object <- "FAIL" - df_cubes$Object_Type <- "Cube" + } else { - #------------------------------------------------------------------------- + par_list <- list(endpoint = "find/find", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + term = term, + category = category, + ...) - if (nrow(df_table) != 0) { - df_table$Titel <- titel_search(df_table, term) - } + results_raw <- do.call(db, par_list) - if (nrow(df_stats) != 0) { - df_stats$Titel <- titel_search(df_stats, term) - } + results_json <- test_if_json(results_raw) - if (nrow(df_variables) != 0) { - df_variables$Titel <- titel_search(df_variables, term) - } + empty_object <- test_if_error_find(results_json, para = error.ignore, verbose = verbose) - if (nrow(df_cubes) != 0) { - df_cubes$Titel <- titel_search(df_cubes, term) - } + empty_object <- test_if_process_further(results_json, para = error.ignore, verbose = verbose) - #------------------------------------------------------------------------- - - if(isTRUE(ordering)) { - - df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", - "Content", - "Titel", - "Time", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Information", - "Cubes", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Values", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Time", - "LatestUpdate", - "State", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] - - } else { - - df_table <- df_table[, c("Code", - "Content", - "Titel", - "Time", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_stats <- df_stats[, c("Code", - "Content", - "Titel", - "Information", - "Cubes", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_variables <- df_variables[, c("Code", - "Content", - "Titel", - "Values", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] - - df_cubes <- df_cubes[, c("Code", - "Content", - "Titel", - "Time", - "LatestUpdate", - "State", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] + } - } + #--------------------------------------------------------------------------- - #------------------------------------------------------------------------- + if (isTRUE(empty_object)) { - list_resp <- list("Tables" = tibble::as_tibble(df_table), - "Statistics" = tibble::as_tibble(df_stats), - "Variables" = tibble::as_tibble(df_variables), - "Cubes" = tibble::as_tibble(df_cubes)) + list_resp <- list("Output" = "No object found for your request.") attr(list_resp, "Term") <- results_json$Parameter$term + attr(list_resp, "Database") <- rev_database_function(db) attr(list_resp, "Language") <- results_json$Parameter$language attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength attr(list_resp, "Copyright") <- results_json$Copyright return(list_resp) - } - - if (category == "tables") { - - df_table <- binding_lapply(results_json$Tables, - characteristics = c("Code", - "Content", - "Time")) - - df_table$Spezifisch <- ggsub(df_table) + } else if (empty_object == "FAIL" & db == "gen_zensus_api" ){ - df_table$Variablen <- spezifisch_create(df_table) + list_resp <- list("Output" = "There are generally no 'cubes' objects available for the 'zensus' database.") - df_table$Object_Type <- "Table" + attr(list_resp, "Term") <- term + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Category") <- category - #------------------------------------------------------------------------- - - if (nrow(df_table) != 0) { - df_table$Titel <- titel_search(df_table, term) - } - - if (isTRUE(ordering)) { - - df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", - "Content", - "Titel", - "Time", - "Variablen", - "Spezifisch", - "Object_Type")] - - } else { - - df_table <- df_table[, c("Code", - "Content", - "Titel", - "Time", - "Variablen", - "Spezifisch", - "Object_Type")] - } + return(list_resp) - #------------------------------------------------------------------------- + } else if (isFALSE(empty_object)){ - list_resp <- list("Tables" = tibble::as_tibble(df_table)) + list_resp <- list("Output" = results_json$Status$Content) attr(list_resp, "Term") <- results_json$Parameter$term + attr(list_resp, "Database") <- rev_database_function(db) attr(list_resp, "Language") <- results_json$Parameter$language attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength attr(list_resp, "Copyright") <- results_json$Copyright return(list_resp) - } + } else if (empty_object == "DONE") { #--------------------------------------------------------------------------- - if (category == "statistics") { + if (category == "all") { - df_stats <- binding_lapply(results_json$Statistics, - characteristics = c("Code", - "Content", - "Information", - "Cubes")) + category <- c("tables", "statistics", "variables", "cubes") - df_stats$Spezifisch <- ggsub(df_stats) + } - df_stats$Variablen <- spezifisch_create(df_stats) + #--------------------------------------------------------------------------- - df_stats$Object_Type <- "Statistic" + if("tables" %in% category) { - #------------------------------------------------------------------------- + if(!is.null(results_json$Tables)) { - if (nrow(df_stats) != 0) { - df_stats$Titel <- titel_search(df_stats, term) - } + if(isTRUE(detailed)){ - if(isTRUE(ordering)) { + df_table <- binding_lapply(results_json$Tables, + characteristics = c("Code", + "Content", + "Time")) - df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Information", - "Cubes", - "Variablen", - "Spezifisch", - "Object_Type")] + df_table$Spezifisch <- ggsub(df_table) - } else { + df_table$Variablen <- spezifisch_create(df_table) - df_stats <- df_stats[, c("Code", - "Content", - "Titel", - "Information", - "Cubes", - "Variablen", - "Spezifisch", - "Object_Type")] + df_table$Object_Type <- "table" - } - list_resp <- list("Statistics" = tibble::as_tibble(df_stats)) + if (nrow(df_table) != 0) { - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + df_table$Titel <- titel_search(df_table, term, text = verbose) - return(list_resp) + } - } - #--------------------------------------------------------------------------- + if (isTRUE(ordering)) { - if (category == "variables") { + df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", + "Content", + "Titel", + "Time", + "Variablen", + "Spezifisch", + "Object_Type")] - df_variables <- binding_lapply(results_json$Variables, - characteristics = c("Code", - "Content", - "Type", - "Values", - "Information")) + } else { - df_variables$Spezifisch <- ggsub(df_variables) + df_table <- df_table[, c("Code", + "Content", + "Titel", + "Time", + "Variablen", + "Spezifisch", + "Object_Type")] - df_variables$Variablen <- spezifisch_create(df_variables) + } - df_variables$Object_Type <- "Variable" - #------------------------------------------------------------------------- + } else if (isFALSE(detailed)) { - if (nrow(df_variables) != 0) { - df_variables$Titel <- titel_search(df_variables, term) - } + df_table <- binding_lapply(results_json$Tables, + characteristics = c("Code", + "Content")) - if(isTRUE(ordering)) { + df_table$Spezifisch <- ggsub(df_table) - df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Values", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] + df_table$Variablen <- spezifisch_create(df_table) - } else { + df_table$Object_Type <- "table" - df_variables <- df_variables[, c("Code", - "Content", - "Titel", - "Values", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] - } + if (nrow(df_table) != 0) { - #------------------------------------------------------------------------- + df_table$Titel <- titel_search(df_table, term, text = verbose) - list_resp <- list("Variables" = tibble::as_tibble(df_variables)) + } - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright - return(list_resp) - } + if (isTRUE(ordering)) { - #--------------------------------------------------------------------------- + df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", + "Content", + "Object_Type")] + } else { - if (category == "cubes") { + df_table <- df_table[, c("Code", + "Content", + "Object_Type")] - df_cubes <- binding_lapply(results_json$Cubes, - characteristics = c("Code", - "Content", - "Time", - "LatestUpdate", - "State", - "Information")) + } - df_cubes$Spezifisch <- ggsub(df_cubes) + } - df_cubes$Variablen <- spezifisch_create(df_cubes) + } else { - df_cubes$Object_Type <- "Cube" + df_table <- find_token(results_json$Tables, + error.input = error.ignore, + text = verbose, + sub_category = "Tables") - #------------------------------------------------------------------------- + } - if (nrow(df_cubes) != 0) { - df_cubes$Titel <- titel_search(df_cubes, term) } - if(isTRUE(ordering)) { - - df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", - "Content", - "Titel", - "Time", - "LatestUpdate", - "State", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] - - } else { - - df_cubes <- df_cubes[, c("Code", - "Content", - "Titel", - "Time", - "LatestUpdate", - "State", - "Information", - "Variablen", - "Spezifisch", - "Object_Type")] + #--------------------------------------------------------------------------- - } + if("statistics" %in% category) { - #------------------------------------------------------------------------- + if(!is.null(results_json$Statistics)) { - list_resp <- list("Cubes" = tibble::as_tibble(df_cubes)) + if(isTRUE(detailed)){ - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + df_stats <- binding_lapply(results_json$Statistics, + characteristics = c("Code", + "Content", + "Information", + "Cubes")) - return(list_resp) - } - } + df_stats$Spezifisch <- ggsub(df_stats) - #----------------------------------------------------------------------------- + df_stats$Variablen <- spezifisch_create(df_stats) - if (detailed == FALSE) { + df_stats$Object_Type <- "statistic" - if (category == "all") { - #------------------------------------------------------------------------- + if (nrow(df_stats) != 0) { - df_table <- binding_lapply(results_json$Tables, - characteristics = c("Code", - "Content")) + df_stats$Titel <- titel_search(df_stats, term, text = verbose) - df_table$Spezifisch <- ggsub(df_table) + } - df_table$Variablen <- spezifisch_create(df_table) - df_table$Object_Type <- "Table" + if (isTRUE(ordering)) { - #------------------------------------------------------------------------- + df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", + "Content", + "Titel", + "Information", + "Cubes", + "Variablen", + "Spezifisch", + "Object_Type")] - df_stats <- binding_lapply(results_json$Statistics, - characteristics = c("Code", - "Content")) + } else { - df_stats$Spezifisch <- ggsub(df_stats) + df_stats <- df_stats[, c("Code", + "Content", + "Titel", + "Information", + "Cubes", + "Variablen", + "Spezifisch", + "Object_Type")] - df_stats$Variablen <- spezifisch_create(df_stats) + } - df_stats$Object_Type <- "Statistic" - #------------------------------------------------------------------------- + } else if (isFALSE(detailed)) { - df_variables <- binding_lapply(results_json$Variables, - characteristics = c("Code", - "Content")) + df_stats <- binding_lapply(results_json$Statistics, + characteristics = c("Code", + "Content")) - df_variables$Spezifisch <- ggsub(df_variables) + df_stats$Spezifisch <- ggsub(df_stats) - df_variables$Variablen <- spezifisch_create(df_variables) + df_stats$Variablen <- spezifisch_create(df_stats) - df_variables$Object_Type <- "Variable" + df_stats$Object_Type <- "statistic" - #------------------------------------------------------------------------- - df_cubes <- binding_lapply(results_json$Cubes, - characteristics = c("Code", - "Content")) + if (nrow(df_stats) != 0) { - df_cubes$Spezifisch <- ggsub(df_cubes) + df_stats$Titel <- titel_search(df_stats, term, text = verbose) - df_cubes$Variablen <- spezifisch_create(df_cubes) + } - df_cubes$Object_Type <- "Cube" - #------------------------------------------------------------------------- + if (isTRUE(ordering)) { - if (nrow(df_table) != 0) { - df_table$Titel <- titel_search(df_table, term) - } + df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", + "Content", + "Object_Type")] + } else { - if (nrow(df_stats) != 0) { - df_stats$Titel <- titel_search(df_stats, term) - } + df_stats <- df_stats[, c("Code", + "Content", + "Object_Type")] - if (nrow(df_variables) != 0) { - df_variables$Titel <- titel_search(df_variables, term) - } + } - if (nrow(df_cubes) != 0) { - df_cubes$Titel <- titel_search(df_cubes, term) - } + } - #------------------------------------------------------------------------- + } else { - if(isTRUE(ordering)) { + df_stats <- find_token(results_json$Statistics, + error.input = error.ignore, + text = verbose, + sub_category = "Statistics") - df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", - "Content", - "Object_Type")] + } - df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] + } - df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] + #--------------------------------------------------------------------------- - df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] - } else { + if("variables" %in% category) { - df_table <- df_table[, c("Code", - "Content", - "Object_Type")] + if(!is.null(results_json$Variables)) { - df_stats <- df_stats[, c("Code", - "Content", - "Object_Type")] + if(isTRUE(detailed)){ - df_variables <- df_variables[, c("Code", - "Content", - "Object_Type")] + df_variables <- binding_lapply(results_json$Variables, + characteristics = c("Code", + "Content", + "Type", + "Values", + "Information")) - df_cubes <- df_cubes[, c("Code", - "Content", - "Object_Type")] + df_variables$Spezifisch <- ggsub(df_variables) - } + df_variables$Variablen <- spezifisch_create(df_variables) - #------------------------------------------------------------------------- + df_variables$Object_Type <- "variable" - list_resp <- list("Tables" = tibble::as_tibble(df_table), - "Statistics" = tibble::as_tibble(df_stats), - "Variables" = tibble::as_tibble(df_variables), - "Cubes" = tibble::as_tibble(df_cubes)) - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + if (nrow(df_variables) != 0) { - return(list_resp) + df_variables$Titel <- titel_search(df_variables, term, text = verbose) - } + } - #--------------------------------------------------------------------------- - if (category == "tables") { + if (isTRUE(ordering)) { - df_table <- binding_lapply(results_json$Tables, - characteristics = c("Code", - "Content")) + df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", + "Content", + "Titel", + "Values", + "Information", + "Variablen", + "Spezifisch", + "Object_Type")] - df_table$Spezifisch <- ggsub(df_table) + } else { - df_table$Variablen <- spezifisch_create(df_table) + df_variables <- df_variables[, c("Code", + "Content", + "Titel", + "Values", + "Information", + "Variablen", + "Spezifisch", + "Object_Type")] - df_table$Object_Type <- "Table" + } - #------------------------------------------------------------------------- - if (nrow(df_table) != 0) { - df_table$Titel <- titel_search(df_table, term) - } + } else if (isFALSE(detailed)) { - if(isTRUE(ordering)) { + df_variables <- binding_lapply(results_json$Variables, + characteristics = c("Code", + "Content")) - df_table <- df_table[with(df_table, order(-Titel, -Variablen)), c("Code", - "Content", - "Object_Type")] + df_variables$Spezifisch <- ggsub(df_variables) - } else { + df_variables$Variablen <- spezifisch_create(df_variables) - df_table <- df_table[, c("Code", - "Content", - "Object_Type")] + df_variables$Object_Type <- "variable" - } - #------------------------------------------------------------------------- + if (nrow(df_variables) != 0) { - list_resp <- list("Tables" = tibble::as_tibble(df_table)) + df_variables$Titel <- titel_search(df_variables, term, text = verbose) - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + } - return(list_resp) - } - - if (category == "statistics") { + if (isTRUE(ordering)) { - df_stats <- binding_lapply(results_json$Statistics, - characteristics = c("Code", - "Content")) + df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", + "Content", + "Object_Type")] - df_stats$Spezifisch <- ggsub(df_stats) + } else { - df_stats$Variablen <- spezifisch_create(df_stats) + df_variables <- df_variables[, c("Code", + "Content", + "Object_Type")] - df_stats$Object_Type <- "Statistic" + } - #------------------------------------------------------------------------- - - if (nrow(df_stats) != 0) { - df_stats$Titel <- titel_search(df_stats, term) - } + } - if(isTRUE(ordering)) { - df_stats <- df_stats[with(df_stats, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] + } else { - } else { + df_variables <- find_token(results_json$Variables, + error.input = error.ignore, + text = verbose, + sub_category = "Variables") - df_stats <- df_stats[, c("Code", - "Content", - "Object_Type")] + } } - #------------------------------------------------------------------------- + #--------------------------------------------------------------------------- - list_resp <- list("Statistics" = tibble::as_tibble(df_stats)) + if("cubes" %in% category) { - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + if (db == "gen_api" | db == "gen_regio_api") { - return(list_resp) - } + if(!is.null(results_json$Cubes)) { - #--------------------------------------------------------------------------- + if(isTRUE(detailed)){ - if (category == "variables") { + df_cubes <- binding_lapply(results_json$Cubes, + characteristics = c("Code", + "Content", + "Time", + "LatestUpdate", + "State", + "Information")) - df_variables <- binding_lapply(results_json$Variables, - characteristics = c("Code", - "Content")) + df_cubes$Spezifisch <- ggsub(df_cubes) - df_variables$Spezifisch <- ggsub(df_variables) + df_cubes$Variablen <- spezifisch_create(df_cubes) - df_variables$Variablen <- spezifisch_create(df_variables) + df_cubes$Object_Type <- "cube" - df_variables$Object_Type <- "Variable" - #------------------------------------------------------------------------- + if (nrow(df_cubes) != 0) { - if (nrow(df_variables) != 0) { - df_variables$Titel <- titel_search(df_variables, term) - } + df_cubes$Titel <- titel_search(df_cubes, term, text = verbose) + + } - #------------------------------------------------------------------------- - if(isTRUE(ordering)) { + if (isTRUE(ordering)) { - df_variables <- df_variables[with(df_variables, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] + df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", + "Content", + "Titel", + "Time", + "LatestUpdate", + "State", + "Information", + "Variablen", + "Spezifisch", + "Object_Type")] - } else { + } else { - df_variables <- df_variables[, c("Code", + df_cubes <- df_cubes[, c("Code", "Content", + "Titel", + "Time", + "LatestUpdate", + "State", + "Information", + "Variablen", + "Spezifisch", "Object_Type")] - } + } - #------------------------------------------------------------------------- - list_resp <- list("Variables" = tibble::as_tibble(df_variables)) + } else if (isFALSE(detailed)) { - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + df_cubes <- binding_lapply(results_json$Cubes, + characteristics = c("Code", + "Content")) - return(list_resp) - } + df_cubes$Spezifisch <- ggsub(df_cubes) - } + df_cubes$Variablen <- spezifisch_create(df_cubes) - #--------------------------------------------------------------------------- + df_cubes$Object_Type <- "cube" - if (category == "cubes") { - df_cubes <- binding_lapply(results_json$Cubes, - characteristics = c("Code", - "Content")) + if (nrow(df_cubes) != 0) { - df_cubes$Spezifisch <- ggsub(df_cubes) + df_cubes$Titel <- titel_search(df_cubes, term, text = verbose) - df_cubes$Variablen <- spezifisch_create(df_cubes) + } - df_cubes$Object_Type <- "Cube" - #------------------------------------------------------------------------- + if (isTRUE(ordering)) { - if (nrow(df_cubes) != 0) { - df_cubes$Titel <- titel_search(df_cubes, term) - } + df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", + "Content", + "Object_Type")] + + } else { + + df_cubes <- df_cubes[, c("Code", + "Content", + "Object_Type")] + + } + + } - if(isTRUE(ordering)) { + } else { - df_cubes <- df_cubes[with(df_cubes, order(-Titel, -Variablen)), c( "Code", - "Content", - "Object_Type")] + df_cubes <- find_token(results_json$Cubes, + error.input = error.ignore, + text = verbose, + sub_category = "Cubes") - } else { + } - df_cubes <- df_cubes[, c("Code", - "Content", - "Object_Type")] + } else if (db == "gen_zensus_api") { + + df_cubes <- "There are generally no 'cubes' objects available for the 'zensus' database." + + } } - #------------------------------------------------------------------------- + #--------------------------------------------------------------------------- - list_resp <- list("Cubes" = tibble::as_tibble(df_cubes)) + list_resp <- list() - attr(list_resp, "Term") <- results_json$Parameter$term - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + if("tables" %in% category) {list_resp$Tables <- tibble::as_tibble(df_table) } + if("statistics" %in% category) {list_resp$Statistics <- tibble::as_tibble(df_stats) } + if("variables" %in% category) {list_resp$Variables <- tibble::as_tibble(df_variables) } + if("cubes" %in% category) {list_resp$Cubes <- tibble::as_tibble(df_cubes) } - return(list_resp) + attr(list_resp, "Term") <- results_json$Parameter$term + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) } + }) - } + res <- check_results(res) - return(list_resp) + return(res) } diff --git a/R/gen_jobs.R b/R/gen_jobs.R new file mode 100644 index 0000000..50005a4 --- /dev/null +++ b/R/gen_jobs.R @@ -0,0 +1,241 @@ +#' gen_list_jobs +#' +#' @description Function to list all current jobs connected to the given user in the GENESIS or regionalstatistik.de database. Important note: For this function it is also possible to use `searchcriterion` parameter and `selection` parameter, making it possible to filter the job list based on 'type','time','status' or 'code'. For more details see `vignette("additional_parameter")`. +#' +#' @param database Character string. Indicator if 'genesis' or 'regionalstatistik.de' database is called. Default option is 'genesis'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'type','time','status' or 'code'. This is a parameter of the API call itself. The default is 'type'. +#' @param flat Boolean. Should the function return a list with jobs and metadata ('FALSE') or just a flat data.frame ('TRUE')? Defaults to FALSE. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list or data.frame (see parameter 'flat') of all current jobs of the user. +#' @export +#' +#' @examples +#' \dontrun{ +#' gen_list_jobs("regio", flat = TRUE) +#' } +#' +gen_list_jobs <- function(database = c("genesis", "regio"), + sortcriterion = c("type", "time", "status", "code"), + flat = FALSE, + ...) { + + gen_fun <- test_database_function(database, + error.input = T, + text = T) + + if (length(database) != 1) { + + stop("This function allows only two values of 'database': 'genesis' or 'regio'.", + call. = FALSE) + + } + + if (!is.character(sortcriterion)) { + + stop("Parameter 'sortcriterion' has to be of type 'character'.", + call. = FALSE) + + } + + sortcriterion <- match.arg(sortcriterion) + + if (!(sortcriterion %in% c("type", "time", "status", "code"))) { + + stop("Parameter 'sortcriterion' has to be 'type', 'time', 'status', or 'code'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + if (gen_fun == "gen_api"){ + + par_list <- list(endpoint = "catalogue/jobs", + sortcriterion = sortcriterion, + ...) + + } else if (gen_fun == "gen_regio_api") { + + par_list <- list(endpoint = "catalogue/jobs", + sortcriterion = sortcriterion, + ...) + + } else { + + stop("Misspecification of the parameter 'database': Only 'genesis' and 'regio' allowed.", + call. = FALSE) + + } + + results_raw <- do.call(gen_fun, par_list) + + results_json <- test_if_json(results_raw) + + #----------------------------------------------------------------------------- + + if (flat == FALSE) { + + res <- list("Output" = tibble::as_tibble(binding_lapply(results_json$List, + characteristics = c("State", + "Code", + "Date", + "Time", + "Content")))) + + attr(res, "Database") <- database[1] + attr(res, "Sortcriterion") <- results_json$Parameter$sortcriterion + attr(res, "Language") <- results_json$Parameter$language + attr(res, "Copyright") <- results_json$Copyright + + return(res) + + } else if (flat == TRUE) { + + res <- tibble::as_tibble(binding_lapply(results_json$List, + characteristics = c("State", + "Code", + "Date", + "Time", + "Content"))) + + return(res) + + } else { + + stop("Misspecification of the parameter 'flat': Only TRUE or FALSE allowed.", + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' gen_download_job +#' +#' @param name Character string. The job code retrieved by using gen_list_jobs(). +#' @param database Character string. Indicator if the GENESIS ('genesis') or regionalstatistik.de ('regio') database is called. Only one database can be addressed per function call. Default option is 'genesis'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. +#' @param compress Boolean. Should empty rows and columns be discarded? Default is FALSE. +#' @param language Character string. Defines if the decimal mark and grouping mark of integers should be represented based on the European (e.g.: '100,5', '200.000,5') or American ('100.5', '200,000.5') system. Defaults to 'Sys.getenv("GENESIS_LANG")'. +#' @param all_character Boolean. Should all variables be imported as 'character' variables? Avoids fuzzy data type conversions if there are leading zeros or other special characters. Defaults to TRUE. +#' +#' @return Returns a data.frame with the table content +#' @export +#' +#' @examples +#' \dontrun{ +#' gen_download_job("21311-00-01-1_123456789", "regio") +#' } +#' +gen_download_job <- function(name, + database = c("genesis", "regio"), + area = c("all", "public", "user"), + compress = FALSE, + language = Sys.getenv("GENESIS_LANG"), + all_character = TRUE) { + + #----------------------------------------------------------------------------- + + database <- match.arg(database) + + area <- match.arg(area) + + area <- switch(area, + all = "all", + public = "\u00F6ffentlich", + user = "benutzer") + + #----------------------------------------------------------------------------- + # Parameter processing of 'all character' for later use in read_delim + + if (isTRUE(all_character)) { + + all_character <- expression(readr::cols(.default = readr::col_character())) + + } else if (isFALSE(all_character)) { + + all_character <- expression(readr::cols()) + + } else { + + stop("Misspecification of parameter 'all_character'. Has to be TRUE or FALSE.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + if (database == "genesis") { + + response <- gen_api("data/resultfile", + name = name, + area = area, + compress = compress, + format = "ffcsv", + language = language) + + response_type <- resp_check_data(response) + + } else if (database == "regio"){ + + response <- gen_regio_api("data/resultfile", + name = name, + area = area, + compress = compress, + format = "ffcsv", + language = language) + + response_type <- resp_check_data(response) + + } else { + + stop("Misspecification of parameter 'database': Can only be 'genesis' or 'regio'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + if (response_type == "text/csv") { + + if (language == "de") { + + result <- response %>% + httr2::resp_body_string() %>% + readr::read_delim(delim = ";", + show_col_types = FALSE, + locale = readr::locale(decimal_mark = ",", + grouping_mark = "."), + name_repair = "minimal", + col_types = eval(all_character)) + + } else if (language == "en") { + + result <- response %>% + httr2::resp_body_string() %>% + readr::read_delim(delim = ";", + show_col_types = FALSE, + name_repair = "minimal", + col_types = eval(all_character)) + + } else { + + stop("Error handling the parsing of your request (locale not 'de' or 'en').", + call. = FALSE) + + } # End of language check + + #----------------------------------------------------------------------------- + + return(result) + + } else { + + stop("The response type of the job request is invalid (not 'text/csv').\n You might have chosen the wrong database to check for your job.", + call. = FALSE) + + } # End of response type check + +} diff --git a/R/gen_list_jobs.R b/R/gen_list_jobs.R deleted file mode 100644 index 6d386cd..0000000 --- a/R/gen_list_jobs.R +++ /dev/null @@ -1,29 +0,0 @@ -#' gen_list_jobs: Explore current jobs of your user account -#' -#' @description Function to list all current jobs connected to the given user. -#' -#' @param selection Filter the list of jobs for matching codes. -#' @param sortcriterion Allows to sort the resulting list of jobs by their Code ("content"), the time of completion ("time") or status ("status") -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list of all current jobs connected to the given user. -#' @export -#' -gen_list_jobs <- function(selection = NULL, - sortcriterion = c("content", "time", "status"), - ... - ) { - - results_raw <- gen_api("catalogue/jobs", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = selection, - sortcriterion = sortcriterion, - ... - ) - - results_json <- test_if_json(results_raw) - - return(results_json) - -} diff --git a/R/gen_logincheck.R b/R/gen_logincheck.R new file mode 100644 index 0000000..361fb73 --- /dev/null +++ b/R/gen_logincheck.R @@ -0,0 +1,19 @@ +#' gen_logincheck +#' +#' @description Function to check if a login is possible for a certain database. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Only one database can be addressed per function call. Default option is 'genesis'. +#' @param verbose Boolean. In case of success, should a message be printed? Defaults to FALSE. +#' +#' @return Leads to an informative error message if the login check failed and returns FALSE invisibly. Invisibly returns TRUE otherwise. +#' @export +#' +#' @examples +#' \dontrun{ +#' gen_logincheck("zensus") +#' } +#' +gen_logincheck <- function(database, verbose = FALSE) { + + logincheck_http_error(database, verbose) + +} diff --git a/R/gen_meta_data.R b/R/gen_meta_data.R deleted file mode 100644 index 5bc4f77..0000000 --- a/R/gen_meta_data.R +++ /dev/null @@ -1,531 +0,0 @@ -#' gen_metadata_stat -#' -#' @description Function to search for meta-information for a specific statistic. -#' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the statistic with the code "12411" -#' object <- gen_metadata_stats(code = "12411") -#' } -#' -gen_metadata_stats <- function(code = NULL, - error.ignore = FALSE, - ...) { - - check_function_input(code = code, - error.ignore = error.ignore) - - #----------------------------------------------------------------------------- - - results_raw <- gen_api("metadata/statistic", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - df_stats <- "No `meta_information`- object found for your request." - - } else if(isFALSE(empty_object)){ - - df_stats <- results_json$Status$Content - - } else if(empty_object == "DONE"){ - - df_stats <- c("Code" = results_json$Object$Code, - "Content" = results_json$Object$Content, - "Cubes" = results_json$Object$Cubes, - "Variables" = results_json$Object$Variables, - "Information" = results_json$Object$Information, - "Time_from" = results_json$Object$Frequency[[1]]$From, - "Time_to" = results_json$Object$Frequency[[1]]$To, - "Time_type" = results_json$Object$Frequency[[1]]$Type) - } - - attr(df_stats, "Code") <- results_json$Parameter$name - attr(df_stats, "Method") <- results_json$Ident$Method - attr(df_stats, "Updated") <- results_json$Object$Updated - attr(df_stats, "Language") <- results_json$Parameter$language - attr(df_stats, "Copyright") <- results_json$Copyright - - return(df_stats) -} - -#------------------------------------------------------------------------------- - -#' gen_metadata_var -#' -#' @description Function to search for meta-information for a specific variable. -#' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notation is possible. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the variable with the code "FAMSTD" -#' object <- gen_metadata_var(code = "FAMSTD") -#' } -#' -gen_metadata_var <- function(code = NULL, - error.ignore = FALSE, - ...) { - - check_function_input(code = code, - error.ignore = error.ignore) - - #----------------------------------------------------------------------------- - - results_raw <- gen_api("metadata/variable", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - df_var <- "No `meta_information`- object found for your request." - - } else if(isFALSE(empty_object)){ - - df_var <- results_json$Status$Content - - } else if(empty_object == "DONE"){ - - df_var <- c("Code" = results_json$Object$Code, - "Content" = results_json$Object$Content, - "Values" = results_json$Object$Values, - "Type" = results_json$Object$Type, - "Validity_from" = results_json$Object$Validity$From, - "Validity_to" = results_json$Object$Validity$To) - } - - list_resp <- list("General" = df_var, - "Information" = results_json$Object$Information) - - attr(list_resp, "Code") <- results_json$Parameter$name - attr(list_resp, "Method") <- results_json$Ident$Method - attr(list_resp, "Updated") <- results_json$Object$Updated - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) -} - -#------------------------------------------------------------------------------- - -#' gen_metadata_val -#' -#' @description Function to search for meta-information for a specific value. -#' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the value with the code "LEDIG" -#' object <- gen_metadata_val(code = "LEDIG") -#' } -#' -gen_metadata_val <- function(code = NULL, - error.ignore = FALSE, - ...) { - - check_function_input(code = code, - error.ignore = error.ignore) - - #----------------------------------------------------------------------------- - - results_raw <- gen_api("metadata/value", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - df_value <- "No `meta_information`- object found for your request." - - } else if(isFALSE(empty_object)){ - - df_value <- results_json$Status$Content - - } else if(empty_object == "DONE"){ - - df_value <- c("Code" = results_json$Object$Code, - "Content" = results_json$Object$Content, - "Variables" = results_json$Object$Variables) - } - - list_resp <- list("General" = df_value, - "Information" = results_json$Object$Information) - - attr(list_resp, "Code") <- results_json$Parameter$name - attr(list_resp, "Method") <- results_json$Ident$Method - attr(list_resp, "Updated") <- results_json$Object$Updated - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) -} - -#------------------------------------------------------------------------------- - -#' gen_metadata_tab -#' -#' @description Function to search for meta-information for a specific table. -#' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the table with the code "11111" -#' object <- gen_metadata_tab(code = "11111") -#' } -#' -gen_metadata_tab <- function(code = NULL, - error.ignore = FALSE, - ...) { - - check_function_input(code = code, - error.ignore = error.ignore) - - #----------------------------------------------------------------------------- - - results_raw <- gen_api("metadata/table", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - char <- "No `meta_information`- object found for your request." - structure <- NULL - embedded <- NULL - - } else if(isFALSE(empty_object)){ - - char <- results_json$Status$Content - structure <- NULL - embedded <- NULL - - } else if(empty_object == "DONE"){ - - char <- c("Code" = results_json$Object$Code, - "Content" = results_json$Object$Content, - "Time_From" = results_json$Object$Time$From, - "Time_To" = results_json$Object$Time$To, - "Valid" = results_json$Object$Valid) - - embedded <- cbind("Code" = results_json$Object$Structure$Head$Code, - "Content" = results_json$Object$Structure$Head$Content, - "Type" = results_json$Object$Structure$Head$Type, - "Values" = results_json$Object$Structure$Head$Values, - "Selection" = results_json$Object$Structure$Head$Selected, - "Updated" = results_json$Object$Structure$Head$Updated) - - structure <- list() - - structure$Head <- if (length(results_json$Object$Structure$Head$Structure) == 1) { - - cbind("Code" = results_json$Object$Structure$Head$Structure[[1]]$Code, - "Content" = results_json$Object$Structure$Head$Structure[[1]]$Content, - "Type" = results_json$Object$Structure$Head$Structure[[1]]$Type, - "Values" = results_json$Object$Structure$Head$Structure[[1]]$Values, - "Selected" = results_json$Object$Structure$Head$Structure[[1]]$Selected, - "Structure" = results_json$Object$Structure$Head$Structure[[1]]$Structure, - "Updated" = results_json$Object$Structure$Head$Structure[[1]]$Updated) - - } else { - - cbind("Code" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 1)), - "Content" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 2)), - "Type" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 3)), - "Values" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 4)), - "Selected" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 5)), - "Structure" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 6)), - "Updated" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 7))) - } - - structure$Columns <- if (length(results_json$Object$Structure$Columns) == 1) { - - cbind("Code" = results_json$Object$Structure$Columns[[1]]$Code, - "Content" = results_json$Object$Structure$Columns[[1]]$Content, - "Type" = results_json$Object$Structure$Columns[[1]]$Type, - "Unit" = results_json$Object$Structure$Columns[[1]]$Unit, - "Values" = results_json$Object$Structure$Columns[[1]]$Values, - "Updated" = results_json$Object$Structure$Columns[[1]]$Updated) - - } else { - - cbind("Code" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 1)), - "Content" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 2)), - "Type" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 3)), - "Unit" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 4)), - "Values" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 5)), - "Updated" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 6))) - - } - - structure$Rows <- if (length(results_json$Object$Structure$Rows) == 1) { - - cbind("Code" = results_json$Object$Structure$Rows[[1]]$Code, - "Content" = results_json$Object$Structure$Rows[[1]]$Content, - "Type" = results_json$Object$Structure$Rows[[1]]$Type, - "Unit" = results_json$Object$Structure$Rows[[1]]$Unit, - "Values" = results_json$Object$Structure$Rows[[1]]$Values, - "Updated" = results_json$Object$Structure$Rows[[1]]$Updated) - - } else { - - cbind("Code" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 1)), - "Content" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 2)), - "Type" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 3)), - "Unit" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 4)), - "Values" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 5)), - "Updated" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 6))) - - } - } - - list_resp <- list("General" = char, - "Structure" = structure, - "Embedded_in" = embedded) - - attr(list_resp, "Code") <- results_json$Parameter$name - attr(list_resp, "Method") <- results_json$Ident$Method - attr(list_resp, "Updated") <- results_json$Object$Updated - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) -} - -#------------------------------------------------------------------------------- - -#' gen_metadata_cube -#' -#' @description Function to search for meta-information for a specific cube. -#' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the cube with the code "11111KE001" -#' object <- gen_metadata_cube(code = "11111KE001") -#' } -#' -gen_metadata_cube <- function(code = NULL, - error.ignore = FALSE, - ...) { - - check_function_input(code = code, - error.ignore = error.ignore) - - #----------------------------------------------------------------------------- - - results_raw <- gen_api("metadata/cube", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) - - results_json <- test_if_json(results_raw) - - empty_object <- test_if_error(results_json, para = error.ignore) - - #----------------------------------------------------------------------------- - - if(isTRUE(empty_object)){ - - char <- "No `meta_information`- object found for your request." - time <- NULL - stat <- NULL - structure <- NULL - - } else if(isFALSE(empty_object)){ - - char <- results_json$Status$Content - time <- NULL - stat <- NULL - structure <- NULL - - } else if(empty_object == "DONE"){ - - char <- c("Code" = results_json$Object$Code, - "Content" = results_json$Object$Content, - "State" = results_json$Object$State, - "Values" = results_json$Object$Values) - - time <- unlist(results_json$Object$Timeslices) - - stat <- c("Code" = results_json$Object$Statistic$Code, - "Content" = results_json$Object$Statistic$Content, - "Updated" = results_json$Object$Statistic$Updated) - - structure <- list() - - structure$Axis <- if (length(results_json$Object$Structure$Axis) == 1) { - - cbind( - "Code" = results_json$Object$Structure$Axis[[1]]$Code, - "Content" = results_json$Object$Structure$Axis[[1]]$Content, - "Type" = results_json$Object$Structure$Axis[[1]]$Type, - "Updated" = results_json$Object$Structure$Axis[[1]]$Updated) - - } else { - - cbind( - "Code" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 1)), - "Content" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 2)), - "Type" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 3)), - "Updated" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 4))) - } - - structure$Content <- if (length(results_json$Object$Structure$Contents) == 1) { - - cbind("Code" = results_json$Object$Structure$Contents[[1]]$Code, - "Content" = results_json$Object$Structure$Contents[[1]]$Content, - "Type" = results_json$Object$Structure$Contents[[1]]$Type, - "Unit" = results_json$Object$Structure$Contents[[1]]$Unit, - "Values" = results_json$Object$Structure$Contents[[1]]$Values, - "Updated" = results_json$Object$Structure$Contents[[1]]$Updated, - "Timeslices" = results_json$Object$Structure$Contents[[1]]$Timeslices) - - } else { - - cbind("Code" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 1)), - "Content" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 2)), - "Type" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 3)), - "Unit" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 4)), - "Values" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 5)), - "Updated" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 7)), - "Updated" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 6))) - } - } - - list_resp <- list("General" = char, - "Timespan" = time, - "Statistic_used" = stat, - "Structure" = structure) - - attr(list_resp, "Code") <- results_json$Parameter$name - attr(list_resp, "Method") <- results_json$Ident$Method - attr(list_resp, "Updated") <- results_json$Object$Updated - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Copyright") <- results_json$Copyright - - return(list_resp) -} - -#------------------------------------------------------------------------------- - -#' gen_metadata -#' -#' @description Search For Meta-Information For All Types Of Objects -#' -#' @param code string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param category a string. Specific object-types: 'Cube', 'Statistic', "Table", "Variable" and 'Value'. The function needs a specified object type. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. -#' -#' @return A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -#' @export -#' -#' @examples -#' \dontrun{ -#' # Find meta-information of the table with the code "11111" -#' object <- gen_metadata(code = "11111", category = "Table") -#' } -#' -gen_metadata <- function(code = NULL, - category = c("Cube", "Statistic", "Table", "Variable", "Value"), - error.ignore = FALSE, - ...) { - - caller <- as.character(match.call()[1]) - - check_function_input(code = code, - category = category, - error.ignore = error.ignore, - caller = caller) - - #----------------------------------------------------------------------------- - - if (category == "Cube") { - - gen_metadata_cube(code = code, error.ignore = error.ignore, ...) - - } else if (category == "Value") { - - gen_metadata_val(code = code, error.ignore = error.ignore, ...) - - } else if (category == "Variable") { - - gen_metadata_var(code = code, error.ignore = error.ignore, ...) - - } else if (category == "Table") { - - gen_metadata_tab(code = code, error.ignore = error.ignore, ...) - - } else if (category == "Statistic") { - - gen_metadata_stats(code = code, error.ignore = error.ignore, ...) - - } else { - - stop("Category is not found, please select a correct category. - Available categories are Cube, Statistic, Table, Variable, or Value. - Please choose one of them.", call. = TRUE) - } -} diff --git a/R/gen_metadata.R b/R/gen_metadata.R new file mode 100644 index 0000000..bfca047 --- /dev/null +++ b/R/gen_metadata.R @@ -0,0 +1,879 @@ +#' gen_metadata_statistic +#' +#' @description Function to search for meta information for a specific statistic. +#' +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the statistic with the code "12411" +#' object <- gen_metadata_stats(code = "12411") +#' } +#' +gen_metadata_statistic <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + database = gen_fun, + caller = caller, + verbose = verbose, + raw = raw) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + par_list <- list(endpoint = "metadata/statistic", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + ...) + + if (db == "gen_api" | db == "gen_regio_api") { + + par_list <- append(par_list, list(area = area)) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + #--------------------------------------------------------------------------- + + if (isTRUE(empty_object)){ + + df_stats <- "No 'meta_information' object found for your request." + + } else if (isFALSE(empty_object)) { + + df_stats <- results_json$Status$Content + + } else if (empty_object == "DONE") { + + if (isFALSE(raw)) { + + df_stats <-cbind("Code" = results_json$Object$Code, + "Content" = results_json$Object$Content, + "Cubes" = results_json$Object$Cubes, + "Variables" = results_json$Object$Variables, + "Information" = results_json$Object$Information, + "Time_from" = results_json$Object$Frequency[[1]]$From, + "Time_to" = results_json$Object$Frequency[[1]]$To, + "Time_type" = results_json$Object$Frequency[[1]]$Type) + } else { + + df_stats <- results_json$Object + + } + + } + + attr(df_stats, "Code") <- results_json$Parameter$name + attr(df_stats, "Database") <- rev_database_function(db) + attr(df_stats, "Method") <- results_json$Ident$Method + attr(df_stats, "Updated") <- results_json$Object$Updated + attr(df_stats, "Language") <- results_json$Parameter$language + attr(df_stats, "Copyright") <- results_json$Copyright + + return(df_stats) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) + +} + +#' gen_metadata_variable +#' +#' @description Function to search for meta information for a specific variable. +#' +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the variable with the code "FAMSTD" +#' object <- gen_metadata_var(code = "FAMSTD") +#' } +#' +gen_metadata_variable <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + database = gen_fun, + caller = caller, + verbose = verbose, + raw = raw) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + par_list <- list(endpoint = "metadata/variable", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + ...) + + if (db == "gen_api" | db == "gen_regio_api") { + + par_list <- append(par_list, list(area = area)) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + #--------------------------------------------------------------------------- + + if (isTRUE(empty_object)) { + + df_var <- "No 'meta_information' object found for your request." + + } else if (isFALSE(empty_object)){ + + df_var <- results_json$Status$Content + + } else if (empty_object == "DONE"){ + + if (isFALSE(raw)) { + + df_var <-cbind("Code" = results_json$Object$Code, + "Content" = results_json$Object$Content, + "Values" = results_json$Object$Values, + "Type" = results_json$Object$Type, + "Validity_from" = results_json$Object$Validity$From, + "Validity_to" = results_json$Object$Validity$To) + + } + + } + + if (isFALSE(raw)){ + + list_resp <- list("General" = df_var, + "Information" = results_json$Object$Information) + + } else { + + list_resp <- results_json$Object + + } + + attr(list_resp, "Code") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Method") <- results_json$Ident$Method + attr(list_resp, "Updated") <- results_json$Object$Updated + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) + +} + +#------------------------------------------------------------------------------- + +#' gen_metadata_value +#' +#' @description Function to search for meta information for a specific value. +#' +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the value with the code "LEDIG" +#' object <- gen_metadata_val(code = "LEDIG") +#' } +#' +gen_metadata_value <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + database = gen_fun, + caller = caller, + verbose = verbose, + raw = raw) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + par_list <- list(endpoint = "metadata/value", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + ...) + + if (db == "gen_api" | db == "gen_regio_api") { + + par_list <- append(par_list, list(area = area)) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + #--------------------------------------------------------------------------- + + if (isTRUE(empty_object)) { + + df_value <- "No 'meta_information' object found for your request." + + } else if (isFALSE(empty_object)) { + + df_value <- results_json$Status$Content + + } else if (empty_object == "DONE") { + + if (isFALSE(raw)) { + + df_value <-cbind("Code" = results_json$Object$Code, + "Content" = results_json$Object$Content, + "Variables" = results_json$Object$Variables) + + } + + } + + if (isFALSE(raw)) { + + list_resp <- list("General" = df_value, + "Information" = results_json$Object$Information) + + } else { + + list_resp <- results_json$Object + + } + + attr(list_resp, "Code") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Method") <- results_json$Ident$Method + attr(list_resp, "Updated") <- results_json$Object$Updated + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) + +} + +#------------------------------------------------------------------------------- + +#' gen_metadata_table +#' +#' @description Function to search for meta information for a specific table. +#' +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the table with the code "11111" +#' object <- gen_metadata_tab(code = "11111") +#' } +#' +gen_metadata_table <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + database = gen_fun, + caller = caller, + verbose = verbose, + raw = raw) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + par_list <- list(endpoint = "metadata/table", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + ...) + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + #--------------------------------------------------------------------------- + if (isTRUE(empty_object)) { + + char <- "No 'meta_information' object found for your request." + structure <- NULL + embedded <- NULL + + } else if (isFALSE(empty_object)) { + + char <- results_json$Status$Content + structure <- NULL + embedded <- NULL + + } else if (empty_object == "DONE") { + + if (isFALSE(raw)) { + + char <- cbind("Code" = results_json$Object$Code, + "Content" = results_json$Object$Content, + "Time_From" = results_json$Object$Time$From, + "Time_To" = results_json$Object$Time$To, + "Valid" = results_json$Object$Valid) + + embedded <- cbind("Code" = results_json$Object$Structure$Head$Code, + "Content" = results_json$Object$Structure$Head$Content, + "Type" = results_json$Object$Structure$Head$Type, + "Values" = results_json$Object$Structure$Head$Values, + "Selection" = results_json$Object$Structure$Head$Selected, + "Updated" = results_json$Object$Structure$Head$Updated) + + structure <- list() + + structure$Head <- if (length(results_json$Object$Structure$Head$Structure) == 1) { + + cbind("Code" = results_json$Object$Structure$Head$Structure[[1]]$Code, + "Content" = results_json$Object$Structure$Head$Structure[[1]]$Content, + "Type" = results_json$Object$Structure$Head$Structure[[1]]$Type, + "Values" = results_json$Object$Structure$Head$Structure[[1]]$Values, + "Selected" = results_json$Object$Structure$Head$Structure[[1]]$Selected, + "Structure" = results_json$Object$Structure$Head$Structure[[1]]$Structure, + "Updated" = results_json$Object$Structure$Head$Structure[[1]]$Updated) + + } else { + + cbind("Code" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 1)), + "Content" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 2)), + "Type" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 3)), + "Values" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 4)), + "Selected" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 5)), + "Structure" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 6)), + "Updated" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 7))) + + } + + structure$Columns <- if (length(results_json$Object$Structure$Columns) == 1) { + + cbind("Code" = results_json$Object$Structure$Columns[[1]]$Code, + "Content" = results_json$Object$Structure$Columns[[1]]$Content, + "Type" = results_json$Object$Structure$Columns[[1]]$Type, + "Unit" = results_json$Object$Structure$Columns[[1]]$Unit, + "Values" = results_json$Object$Structure$Columns[[1]]$Values, + "Updated" = results_json$Object$Structure$Columns[[1]]$Updated) + + } else { + + cbind("Code" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 1)), + "Content" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 2)), + "Type" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 3)), + "Unit" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 4)), + "Values" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 5)), + "Updated" = unlist(lapply(results_json$Object$Structure$Columns, `[[`, 6))) + + } + + structure$Rows <- if (length(results_json$Object$Structure$Rows) == 1) { + + cbind("Code" = results_json$Object$Structure$Rows[[1]]$Code, + "Content" = results_json$Object$Structure$Rows[[1]]$Content, + "Type" = results_json$Object$Structure$Rows[[1]]$Type, + "Unit" = results_json$Object$Structure$Rows[[1]]$Unit, + "Values" = results_json$Object$Structure$Rows[[1]]$Values, + "Updated" = results_json$Object$Structure$Rows[[1]]$Updated) + + } else { + + cbind("Code" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 1)), + "Content" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 2)), + "Type" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 3)), + "Unit" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 4)), + "Values" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 5)), + "Updated" = unlist(lapply(results_json$Object$Structure$Rows, `[[`, 6))) + + } + + } + + } # End of empty_object == "DONE" + + if (isFALSE(raw)) { + + list_resp <- list("General" = char, + "Structure" = structure, + "Embedded_in" = embedded) + + } else { + + list_resp <- results_json$Object + + } + + attr(list_resp, "Code") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Method") <- results_json$Ident$Method + attr(list_resp, "Updated") <- results_json$Object$Updated + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) + +} + +#------------------------------------------------------------------------------- + +#' gen_metadata_cube +#' +#' @description Function to search for meta information for a specific cube. Usable only for GENESIS and regionalstatistik.de. +#' +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. + +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the cube with the code "11111KE001" +#' object <- gen_metadata_cube(code = "11111KE001") +#' } +#' +gen_metadata_cube <- function(code = NULL, + database = c("all", "genesis", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + database = gen_fun, + caller = caller, + verbose = verbose, + raw = raw) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + par_list <- list(endpoint = "metadata/cube", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + ...) + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + #--------------------------------------------------------------------------- + + if (isTRUE(empty_object)) { + + char <- "No 'meta_information' object found for your request." + time <- NULL + stat <- NULL + structure <- NULL + + } else if (isFALSE(empty_object)) { + + char <- results_json$Status$Content + time <- NULL + stat <- NULL + structure <- NULL + + } else if (empty_object == "DONE") { + + if (isFALSE(raw)) { + + char <-cbind("Code" = results_json$Object$Code, + "Content" = results_json$Object$Content, + "State" = results_json$Object$State, + "Values" = results_json$Object$Values) + + time <-cbind(unlist(results_json$Object$Timeslices)) + + stat <-cbind("Code" = results_json$Object$Statistic$Code, + "Content" = results_json$Object$Statistic$Content, + "Updated" = results_json$Object$Statistic$Updated) + + structure <- list() + + structure$Axis <- if (length(results_json$Object$Structure$Axis) == 1) { + + cbind("Code" = results_json$Object$Structure$Axis[[1]]$Code, + "Content" = results_json$Object$Structure$Axis[[1]]$Content, + "Type" = results_json$Object$Structure$Axis[[1]]$Type, + "Updated" = results_json$Object$Structure$Axis[[1]]$Updated) + + } else { + + cbind("Code" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 1)), + "Content" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 2)), + "Type" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 3)), + "Updated" = unlist(lapply(results_json$Object$Structure$Axis, `[[`, 4))) + } + + structure$Content <- if (length(results_json$Object$Structure$Contents) == 1) { + + cbind("Code" = results_json$Object$Structure$Contents[[1]]$Code, + "Content" = results_json$Object$Structure$Contents[[1]]$Content, + "Type" = results_json$Object$Structure$Contents[[1]]$Type, + "Unit" = results_json$Object$Structure$Contents[[1]]$Unit, + "Values" = results_json$Object$Structure$Contents[[1]]$Values, + "Updated" = results_json$Object$Structure$Contents[[1]]$Updated, + "Timeslices" = results_json$Object$Structure$Contents[[1]]$Timeslices) + + } else { + + cbind("Code" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 1)), + "Content" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 2)), + "Type" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 3)), + "Unit" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 4)), + "Values" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 5)), + "Updated" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 7)), + "Timeslices" = unlist(lapply(results_json$Object$Structure$Contents, `[[`, 6))) + } + } + } + + if (isFALSE(raw)) { + + list_resp <- list("General" = char, + "Timespan" = time, + "Statistic_used" = stat, + "Structure" = structure) + + } else { + + list_resp <- results_json$Object + + } + + attr(list_resp, "Code") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Method") <- results_json$Ident$Method + attr(list_resp, "Updated") <- results_json$Object$Updated + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) + +} + +#------------------------------------------------------------------------------- + +#' gen_metadata +#' +#' @description Search For Meta-Information For All Types Of Objects +#' +#' @param code String with a maximum length of 15 characters for a database object (GENESIS, regionalstatistik.de, Zensus 2022). Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param category Character string. Specifying the specific object type of the object that you want meta data for. No default option - you need to specify the object type. Hint: The functions in 'restatis' often return information on object 'Type'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param raw Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +#' @export +#' +#' @examples +#' \dontrun{ +#' # Find meta-information of the table with the code "11111" +#' object <- gen_metadata(code = "11111", category = "table") +#' } +#' +gen_metadata <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + category = c("cube", "statistic", "table", "variable", "value"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + + check_function_input(code = code, + error.ignore = error.ignore, + category = category, + database = gen_fun, + caller = caller, + verbose = verbose) + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(odb){ + + if (category == "cube") { + + gen_metadata_cube(code = code, + database = rev_database_function(odb), + error.ignore = error.ignore, + verbose = verbose, + raw = raw, + ...) + + } else if (category == "value") { + + gen_metadata_value(code = code, + database = rev_database_function(odb), + area = area, + error.ignore = error.ignore, + verbose = verbose, + raw = raw, + ...) + + } else if (category == "variable") { + + gen_metadata_variable(code = code, + database = rev_database_function(odb), + area = area, + error.ignore = error.ignore, + verbose = verbose, + raw = raw, + ...) + + } else if (category == "table") { + + gen_metadata_table(code = code, + database = rev_database_function(odb), + area = area, + error.ignore = error.ignore, + verbose = verbose, + raw = raw, + ...) + + } else if (category == "statistic") { + + gen_metadata_statistic(code = code, + database = rev_database_function(odb), + area = area, + error.ignore = error.ignore, + verbose = verbose, + raw = raw, + ...) + + } else { + + stop("Category is not found, please select a correct category. + Available categories for data base GENESIS & Regionalstatistik: 'cube', 'statistic', 'table', 'variable', 'value'. + \n Available categories for Zensus data base: 'statistic', 'table', 'variable', 'value'. \n + Please choose one of them.", call. = TRUE) + } + + }) + + res <- check_results(res) + + return(res) + +} diff --git a/R/gen_modified_data.R b/R/gen_modified_data.R index 495e38d..5b9b80f 100644 --- a/R/gen_modified_data.R +++ b/R/gen_modified_data.R @@ -1,13 +1,16 @@ -#' gen_modified_data: Explore New Added Objects or Changed Objects in Genesis +#' gen_modified_data #' -#' @description Function to check for updates, changes, or new objects in Genesis based on a specific date. +#' @description Function to check for updates, changes, or new objects based on a specific date. #' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis object. Only one code per iteration. "*" notations are possible. Empty code (default value) includes all changes, updates, and new added objects. -#' @param type a string. Specific Genesis object type: 'tables', 'statistics', and 'statisticsUpdates'. All three can be accessed through "all", which is the default. -#' @param date a string. Specific date that is used as the last update or upload time in Genesis to include a Genesis object in return. Default option is 'now', which uses the current date of your system. Alternative options are 'week_before', using the current date of your system minus 7 days, 'month_before', using the current date of your system minus 4 weeks, and 'year_before', using the current date of your system minus 52 weeks. Additionally, it is possible to fill in a specific date of format 'DD.MM.YYYY'. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param type Character string. Specific GENESIS and regionalstatistik.de object types: 'tables', 'statistics', and 'statisticsUpdates'. Specific Zensus 2022 object types: 'tables' and 'statistics'. All types that are specific for one database can be used together through 'all', which is the default. +#' @param date Character string. Specific date that is used as the last update or upload time to include an object in return. Default option is 'now', which uses the current date of your system. Alternative options are 'week_before', using the current date of your system minus 7 days, 'month_before', using the current date of your system minus 4 weeks, and 'year_before', using the current date of your system minus 52 weeks. Additionally, it is possible to fill in a specific date of format 'DD.MM.YYYY'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' -#' @return A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -23,13 +26,23 @@ #' } #' gen_modified_data <- function(code = "", + database = c("all", "genesis", "zensus", "regio"), type = c("all", "tables", "statistics", "statisticsUpdates"), date = c("now", "week_before", "month_before", "year_before"), + verbose = TRUE, ...) { + gen_fun <- test_database_function(database, + error.input = T, + text = verbose) + + type <- match.arg(type) + date <- check_function_input(code = code, type = type, - date = date) + date = date, + database = gen_fun, + verbose = verbose) #----------------------------------------------------------------------------- @@ -52,108 +65,153 @@ gen_modified_data <- function(code = "", } - type <- match.arg(type) - #----------------------------------------------------------------------------- - # Processing #### - if (type == "tables") { + # Processing # + res <- lapply(gen_fun, function(db){ - results_raw <- gen_api("catalogue/modifieddata", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - type = "Neue Tabellen", - date = date, - ...) + if (isTRUE(verbose)) { - results_json <- test_if_json(results_raw) + info <- paste("Started the processing of", rev_database_function(db), "database.") - test_if_error_light(results_json) - } + message(info) - #----------------------------------------------------------------------------- + } - if (type == "statistics") { + #--------------------------------------------------------------------------- - results_raw <- gen_api("catalogue/modifieddata", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - type = "Neue Statistiken", - date = date, - ...) + if (type == "tables") { - results_json <- test_if_json(results_raw) + par_list <- list(endpoint = "catalogue/modifieddata", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + type = "Neue Tabellen", + date = date, + ...) - test_if_error_light(results_json) - } + results_raw <- do.call(db, par_list) - #----------------------------------------------------------------------------- + results_json <- test_if_json(results_raw) - if (type == "statisticsUpdates") { + test_if_error_light(results_json) - results_raw <- gen_api("catalogue/modifieddata", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - type = "Aktualisierte Statistiken", - date = date, - ...) + } - results_json <- test_if_json(results_raw) + #--------------------------------------------------------------------------- - test_if_error_light(results_json) - } + if (type == "statistics") { - #----------------------------------------------------------------------------- + par_list <- list(endpoint = "catalogue/modifieddata", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + type = "Neue Statistiken", + date = date, + ...) - if (type == "all") { + results_raw <- do.call(db, par_list) - results_raw <- gen_api("catalogue/modifieddata", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - type = "all", - date = date, - ...) + results_json <- test_if_json(results_raw) - results_json <- test_if_json(results_raw) + test_if_error_light(results_json) - test_if_error_light(results_json) - } - #----------------------------------------------------------------------------- + } + + #--------------------------------------------------------------------------- + + if (type == "statisticsUpdates") { + + if (db == "gen_api" | db == "gen_api_regio") { + + par_list <- list(endpoint = "catalogue/modifieddata", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + type = "Aktualisierte Statistiken", + date = date, + ...) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) - if (is.null(unlist(results_json$List))) { + test_if_error_light(results_json) - message("No modified objects found for your code and date.") + } - } else { + #--------------------------------------------------------------------------- - table <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Date", - "Added", - "Type")) + if (type == "all") { + par_list <- list(endpoint = "catalogue/modifieddata", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + type = "all", + date = date, + ...) - table$Date <- as.Date.character(table$Date, format = "%d.%m.%Y") + results_raw <- do.call(db, par_list) - table <- tibble::as_tibble(table) - table <- table[order(table$Date, decreasing = TRUE), ] + results_json <- test_if_json(results_raw) - list_resp <- list("Modified" = table) + test_if_error_light(results_json) - attr(list_resp, "Code") <- results_json$Parameter$selection - attr(list_resp, "Type") <- results_json$Parameter$type - attr(list_resp, "Date") <- results_json$Parameter$date - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + } - return(list_resp) + if (is.null(unlist(results_json$List))) { + + if (isTRUE(verbose)) { + + message(paste0("No modified objects found for your code and date in ", rev_database_function(db))) + + } + + return("No modified objects found.") + + } else { + + table <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Date", + "Added", + "Type")) + + + table$Date <- as.Date.character(table$Date, format = "%d.%m.%Y") + + table <- tibble::as_tibble(table) + table <- table[order(table$Date, decreasing = TRUE), ] + + list_resp <- list("Modified" = table) + + attr(list_resp, "Code") <- results_json$Parameter$selection + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Type") <- results_json$Parameter$type + attr(list_resp, "Date") <- results_json$Parameter$date + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + } + + }) + + #----------------------------------------------------------------------------- + + if (!is.null(unlist(res))) { + + res <- check_results(res) + + return(res) } + } diff --git a/R/gen_objects2stat.R b/R/gen_objects2stat.R index 750bd6e..2cac359 100644 --- a/R/gen_objects2stat.R +++ b/R/gen_objects2stat.R @@ -1,14 +1,18 @@ -#' gen_objects2stat: Get Objects Related To Statistics +#' gen_objects2stat #' -#' Function to find objects related to a statistic in Genesis. +#' Function to find objects related to a statistic #' -#' @param code a string with a maximum length of 6 characters (15 characters if cubes are not used as a category). Code from a Genesis-Object. Only one code per iteration. -#' @param category a string. Specific object-types: 'tables', 'variables', and 'cubes'. All three together are possible and the default option. -#' @param detailed a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 6 characters (15 characters if 'cubes' are not used as a category). Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param category Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -23,187 +27,248 @@ #' } #' gen_objects2stat <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "variables", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(code = code, category = category, detailed = detailed, error.ignore = error.ignore, - caller = caller) + database = gen_fun, + sortcriterion = sortcriterion, + caller = caller, + verbose = verbose) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + sortcriterion <- match.arg(sortcriterion) + + #----------------------------------------------------------------------------- + + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } - #------------------------------------------------------------------------------- + #--------------------------------------------------------------------------- - if ("tables" %in% category) { + if ("tables" %in% category) { - results_raw <- gen_api("catalogue/tables2statistic", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + par_list <- list(endpoint = "catalogue/tables2statistic", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...) + + results_raw <- do.call(db, par_list) results_json <- test_if_json(results_raw) - empty_object <- test_if_error(results_json, para = error.ignore) + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - if(isTRUE(empty_object)){ + if (isTRUE(empty_object)) { df_tables <- "No 'tables' object found for your request." - } else if(isFALSE(empty_object)){ + } else if (isFALSE(empty_object)) { df_tables <- results_json$Status$Content - } else if(empty_object == "DONE"){ + } else if (empty_object == "DONE") { if (isTRUE(detailed)) { - df_tables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Time")) + df_tables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Time")) - } else { + } else { - df_tables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) - } + df_tables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + + } + + df_tables$Object_Type <- "Table" - df_tables$Object_Type <- "Table" + df_tables <- tibble::as_tibble(df_tables) - df_tables <- tibble::as_tibble(df_tables) } - } - #----------------------------------------------------------------------------- + } + + #--------------------------------------------------------------------------- - if ("variables" %in% category) { + if ("variables" %in% category) { - results_raw <- gen_api("catalogue/variables2statistic", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + par_list <- list(endpoint = "catalogue/variables2statistic", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...) - results_json <- test_if_json(results_raw) + results_raw <- do.call(db, par_list) - empty_object <- test_if_error(results_json, para = error.ignore) + results_json <- test_if_json(results_raw) - if(isTRUE(empty_object)){ + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - df_variables <- "No 'variables' object found for your request." + if (isTRUE(empty_object)) { - } else if(isFALSE(empty_object)){ + df_variables <- "No 'variables' object found for your request." - df_variables <- results_json$Status$Content + } else if (isFALSE(empty_object)) { - } else if(empty_object == "DONE"){ + df_variables <- results_json$Status$Content - if (detailed == TRUE) { + } else if (empty_object == "DONE") { - df_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Type", - "Values", - "Information")) + if (detailed == TRUE) { - } else { + df_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Type", + "Values", + "Information")) - df_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + } else { - } + df_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + + } - df_variables$Object_Type <- "Variable" + df_variables$Object_Type <- "Variable" + + df_variables <- tibble::as_tibble(df_variables) + + } - df_variables <- tibble::as_tibble(df_variables) } - } - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- + + if ("cubes" %in% category && "gen_zensus_api" == db) { + + df_cubes <- "There are generally no 'cubes' objects available for the 'zensus' database." - if ("cubes" %in% category) { + return(df_cubes) - results_raw <- gen_api("catalogue/cubes2statistic", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + } else if ("cubes" %in% category && (db == "gen_api" || db == "gen_regio_api")) { - results_json <- test_if_json(results_raw) + results_raw <- do.call(db, list(endpoint = "catalogue/cubes2statistic", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...)) - empty_object <- test_if_error(results_json, para = error.ignore) + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - if(isTRUE(empty_object)){ + if (isTRUE(empty_object)) { - df_cubes <- "No 'cubes' object found for your request." + df_cubes <- "No 'cubes' object found for your request." - } else if(isFALSE(empty_object)){ + } else if (isFALSE(empty_object)) { - df_cubes <- results_json$Status$Content + df_cubes <- results_json$Status$Content - } else if(empty_object == "DONE"){ + } else if (empty_object == "DONE") { - if (isTRUE(detailed)) { + if (isTRUE(detailed)) { - df_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Time", - "State", - "LatestUpdate", - "Information")) + df_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Time", + "State", + "LatestUpdate", + "Information")) - } else { + } else { - df_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + df_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) - } + } - df_cubes$Object_Type <- "Cube" + df_cubes$Object_Type <- "Cube" + + df_cubes <- tibble::as_tibble(df_cubes) + + } - df_cubes <- tibble::as_tibble(df_cubes) } - } - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- + + # Summary # - # Summary #### - if (all(c("tables", "variables", "cubes") %in% category)) { + if (all(c("tables", "variables", "cubes") %in% category)) { - list_resp <- list( - "Tables" = df_tables, - "Variables" = df_variables, - "Cubes" = df_cubes) + list_resp <- list("Tables" = df_tables, + "Variables" = df_variables, + "Cubes" = df_cubes) - } else if (category == "tables") { + } else if (category == "tables") { - list_resp <- df_tables + list_resp <- df_tables - } else if (category == "variables") { + } else if (category == "variables") { - list_resp <- df_variables + list_resp <- df_variables - } else if (category == "cubes") { + } else if (category == "cubes") { - list_resp <- df_cubes - } + list_resp <- df_cubes + } + + attr(list_resp, "Code") <- results_json$Parameter$term + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Category") <- category + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- - attr(list_resp, "Code") <- results_json$Parameter$term - attr(list_resp, "Category") <- category - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + res <- check_results(res) - return(list_resp) + return(res) } diff --git a/R/gen_objects2var.R b/R/gen_objects2var.R index e8ada7d..763b070 100644 --- a/R/gen_objects2var.R +++ b/R/gen_objects2var.R @@ -1,14 +1,18 @@ -#' gen_objects2var: Get Objects Related To Variable +#' gen_objects2var #' -#' @description Function to find objects related to a variable in Genesis. +#' @description Function to find objects related to a variable #' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param category a string. Specific object-types: 'tables', 'statistics', and 'cubes'. All three together are possible and the default option. -#' @param detailed a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param category Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -23,188 +27,245 @@ #' } #' gen_objects2var <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "statistics", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(code = code, category = category, detailed = detailed, error.ignore = error.ignore, - caller = caller) + database = gen_fun, + sortcriterion = sortcriterion, + caller = caller, + verbose = verbose) + + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + sortcriterion <- match.arg(sortcriterion) #----------------------------------------------------------------------------- - if ("tables" %in% category) { + res <- lapply(gen_fun, function(db){ + + if (isTRUE(verbose)) { + + info <- paste("Started the processing of", rev_database_function(db), "database.") + + message(info) + + } + + #--------------------------------------------------------------------------- - results_raw <- gen_api("catalogue/tables2variable", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + if ("tables" %in% category) { - results_json <- test_if_json(results_raw) + par_list <- list(endpoint = "catalogue/tables2variable", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...) - empty_object <- test_if_error(results_json, para = error.ignore) + results_raw <- do.call(db, par_list) - if(isTRUE(empty_object)){ + results_json <- test_if_json(results_raw) - df_tables <- "No 'tables' object found for your request." + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - } else if(isFALSE(empty_object)){ + if (isTRUE(empty_object)) { - df_tables <- results_json$Status$Content + df_tables <- "No 'tables' object found for your request." - } else if(empty_object == "DONE"){ + } else if (isFALSE(empty_object)) { - if (isTRUE(detailed)) { + df_tables <- results_json$Status$Content - df_tables <- binding_lapply(results_json$List, + } else if (empty_object == "DONE") { + + if (isTRUE(detailed)) { + + df_tables <- binding_lapply(results_json$List, characteristics = c("Code", "Content", "Time")) + } else { - } else { + df_tables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) - df_tables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) + } - } + df_tables$Object_Type <- "Table" + + df_tables <- tibble::as_tibble(df_tables) - df_tables$Object_Type <- "Table" + } - df_tables <- tibble::as_tibble(df_tables) } - } - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- - if ("statistics" %in% category) { + if ("statistics" %in% category) { - results_raw <- gen_api("catalogue/statistics2variable", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + par_list <- list(endpoint = "catalogue/statistics2variable", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...) - results_json <- test_if_json(results_raw) + results_raw <- do.call(db, par_list) - empty_object <- test_if_error(results_json, para = error.ignore) + results_json <- test_if_json(results_raw) - if(isTRUE(empty_object)){ + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - df_statistics <- "No 'statistics' object found for your request." + if (isTRUE(empty_object)) { - } else if(isFALSE(empty_object)){ + df_statistics <- "No 'statistics' object found for your request." - df_statistics <- results_json$Status$Content + } else if (isFALSE(empty_object)) { - } else if(empty_object == "DONE"){ + df_statistics <- results_json$Status$Content - if (isTRUE(detailed)) { + } else if (empty_object == "DONE") { - df_statistics <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Cubes", - "Information")) + if (isTRUE(detailed)) { - } else { + df_statistics <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Cubes", + "Information")) - df_statistics <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) - } + } else { + + df_statistics <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + + } - df_statistics$Object_Type <- "Statistic" + df_statistics$Object_Type <- "Statistic" + + df_statistics <- tibble::as_tibble(df_statistics) + + } - df_statistics <- tibble::as_tibble(df_statistics) } - } - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- - if ("cubes" %in% category) { + if ("cubes" %in% category && db == "gen_zensus_api") { - results_raw <- gen_api("catalogue/timeseries2variable", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - ...) + df_cubes <- "There are generally no 'cubes' objects available for the 'zensus' database." - results_json <- test_if_json(results_raw) + } else if ("cubes" %in% category && (db == "gen_api" || db == "gen_regio_api")) { - empty_object <- test_if_error(results_json, para = error.ignore) + results_raw <- do.call(db, list(endpoint = "catalogue/timeseries2variable", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + area = area, + sortcriterion = sortcriterion, + ...)) - if(isTRUE(empty_object)){ + results_json <- test_if_json(results_raw) - df_cubes <- "No 'cubes' object found for your request." + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) - } else if(isFALSE(empty_object)){ + if (isTRUE(empty_object)) { - df_cubes <- results_json$Status$Content + df_cubes <- "No 'cubes' object found for your request." - } else if(empty_object == "DONE"){ + } else if (isFALSE(empty_object)) { - if (isTRUE(detailed)) { + df_cubes <- results_json$Status$Content - df_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Time", - "State", - "LatestUpdate", - "Information")) + } else if (empty_object == "DONE") { - } else { + if (isTRUE(detailed)) { - df_cubes <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content")) - } + df_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Time", + "State", + "LatestUpdate", + "Information")) + + } else { + + df_cubes <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + + } - df_cubes$Object_Type <- "Cube" + df_cubes$Object_Type <- "Cube" + + df_cubes <- tibble::as_tibble(df_cubes) + + } - df_cubes <- tibble::as_tibble(df_cubes) } - } - #----------------------------------------------------------------------------- + #--------------------------------------------------------------------------- + # Summary # - # Summary #### - if (all(c("tables", "statistics", "cubes") %in% category)) { + if (all(c("tables", "statistics", "cubes") %in% category)) { - list_resp <- list( - "Tables" = df_tables, - "Statistics" = df_statistics, - "Cubes" = df_cubes - ) + list_resp <- list("Tables" = df_tables, + "Statistics" = df_statistics, + "Cubes" = df_cubes) - } else if (category == "tables") { + } else if (category == "tables") { - list_resp <- df_tables + list_resp <- df_tables - } else if (category == "statistics") { + } else if (category == "statistics") { - list_resp <- df_statistics + list_resp <- df_statistics - } else if (category == "cubes") { + } else if (category == "cubes") { - list_resp <- df_cubes + list_resp <- df_cubes + + } - } + attr(list_resp, "Code") <- results_json$Parameter$term + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Category") <- category + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- - attr(list_resp, "Code") <- results_json$Parameter$term - attr(list_resp, "Category") <- category - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + res <- check_results(res) - return(list_resp) + return(res) } diff --git a/R/gen_qualitysigns.R b/R/gen_qualitysigns.R new file mode 100644 index 0000000..daa2a1c --- /dev/null +++ b/R/gen_qualitysigns.R @@ -0,0 +1,43 @@ +#' gen_signs +#' +#' @description Function to list all currently used special signs (e.g., 0, *, X, (), p, ...) and their meaning in GENESIS, Zensus 2022 and/or regionalstatistik.de. +#' +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' +#' @return A list of all current used special signs. +#' @export +#' +gen_signs <- function(database = c("all", "genesis", "zensus", "regio"), + ...) { + + gen_fun <- test_database_function(database, + error.input = T, + text = T) + + res <- lapply(gen_fun, function(db){ + + par_list <- list(endpoint = "catalogue/qualitysigns", + ...) + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + mid_res <- list("Output" = tibble::as_tibble(binding_lapply(results_json$List, + characteristics = c("Code", + "Content")))) + + attr(mid_res, "Database") <- rev_database_function(db) + attr(mid_res, "Language") <- results_json$Parameter$language + attr(mid_res, "Copyright") <- results_json$Copyright + + return(mid_res) + + }) + + res <- check_results(res) + + return(res) + +} diff --git a/R/gen_table.R b/R/gen_table.R index 8d1690a..a1e14e6 100644 --- a/R/gen_table.R +++ b/R/gen_table.R @@ -1,37 +1,43 @@ #' gen_table #' -#' @description Download a table with data from Genesis +#' @description Download a table with data from GENESIS, Zensus 2022 or regionalstatistik.de databases #' -#' @param name a string. Name of the table. Use of wildcards (`*`) allowed. +#' @param name Character string. Name/code of the table. Use of wildcards (`*`) is possible. #' @param ... Optional parameters passed on to the Genesis API call: #' \describe{ -#' \item{\code{area}}{a string. The area in which the table is stored. Possible values: +#' \item{\code{area}}{Character string. The area in which the table is stored. Possible values: #' \itemize{ #' \item \code{"public"}: table in the public catalogue #' \item \code{"user"}: table in the user's account +#' \item \code{"all"}: both of the above #' }} -#' \item{\code{compress}}{a logical. Should empty rows and columns be discarded?} -#' \item{\code{transpose}}{a logical. Reshape the table between "wide" and +#' \item{\code{compress}}{Boolean. Should empty rows and columns be discarded?} +#' \item{\code{transpose}}{Boolean. Reshape the table between "wide" and #' "long" format.} -#' \item{\code{startyear,endyear}}{a number. Only retrieve data between these years.} -#' \item{\code{regionalvariable}}{character. Code of the regional variable +#' \item{\code{startyear,endyear}}{Four-digit integers. Only retrieve data between these years.} +#' \item{\code{regionalvariable}}{Character string. Code of the regional variable #' whose value is specified in \code{regionalkey} to filter the results.} -#' \item{\code{regionalkey}}{character. One or more regional keys. Multiple +#' \item{\code{regionalkey}}{Character string. One or more regional keys. Multiple #' values can be supplied as a character vector or as a single string, #' with the regional keys separated by commas. Use of wildcard (`*`) allowed.} #' \item{\code{classifyingvariable1,classifyingvariable2 -#' ,classifyingvariable3}}{character. Code of the subject classification +#' ,classifyingvariable3}}{Character string. Code of the subject classification #' (SK-Merkmal) to which the selection by means of the corresponding #' `classifyingkey` parameter is to be applied.} -#' \item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{character. +#' \item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{Character string. #' One or more values of a subject classification (e.g. "WZ93012"). Applied #' to the corresponding `classifyingvariable` parameter. Multiple #' keys can be supplied as a character vector or as a single string, #' with the keys separated by commas. Use of wildcard (`*`) allowed.} -#' \item{\code{stand}}{a string \code{"DD.MM.YYYY"}. Only retrieve data -#' updated after this #' date.} +#' \item{\code{stand}}{Character string, format: \code{"DD.MM.YYYY"}. Only retrieve data +#' updated after this date.} #' \item{\code{language}}{Search terms, returned messages and data #' descriptions in German (`"de"`) or English (`"en"`)?} +#' \item{\code{job}}{Boolean. Indicate as to whether a job should be created +#' (not available with the 'Zensus' database).)} +#' \item{\code{all_character}}{Boolean. Should all variables be imported as +#' 'character' variables? Avoids fuzzy data type conversions if there are +#' leading zeros or other special characters. Defaults to TRUE.} #' } #' #' @export @@ -50,7 +56,8 @@ gen_table <- function(name, ...) { #------------------------------------------------------------------------------- gen_table_ <- function(name, - area = c("public", "user"), + database = c("genesis", "zensus", "regio"), + area = c("all", "public", "user"), compress = FALSE, transpose = FALSE, startyear = 1900, @@ -64,49 +71,126 @@ gen_table_ <- function(name, classifyingvariable3 = NULL, classifyingkey3 = NULL, stand = NULL, - language = Sys.getenv("GENESIS_LANG")) { + language = Sys.getenv("GENESIS_LANG"), + job = FALSE, + all_character = TRUE) { + + #----------------------------------------------------------------------------- + # Parameter processing + + database <- match.arg(database) area <- match.arg(area) if (!isTRUE(language == "en")) { - area <- switch(area, public = "\u00F6ffentlich", user = "benutzer") + + area <- switch(area, + all = "all", + public = "\u00F6ffentlich", + user = "benutzer") + } param_check_year(startyear) param_check_year(endyear) + param_check_regionalkey(regionalkey) regionalkey <- param_collapse_vec(regionalkey) classifyingkey1 <- param_collapse_vec(classifyingkey1) classifyingkey2 <- param_collapse_vec(classifyingkey2) classifyingkey3 <- param_collapse_vec(classifyingkey3) - resp <- gen_api("data/tablefile", - name = name, - area = area, - compress = compress, - transpose = transpose, - startyear = startyear, - endyear = endyear, - regionalvariable = regionalvariable, - regionalkey = regionalkey, - classifyingvariable1 = classifyingvariable1, - classifyingkey1 = classifyingkey1, - classifyingvariable2 = classifyingvariable2, - classifyingkey2 = classifyingkey2, - classifyingvariable3 = classifyingvariable3, - classifyingkey3 = classifyingkey3, - stand = stand, - language = language, - format = "ffcsv", - job = FALSE - ) - - resp_check_data_csv(resp) - - resp %>% - httr2::resp_body_string() %>% - readr::read_delim( - delim = ";", - show_col_types = FALSE - ) + #----------------------------------------------------------------------------- + # Data download + + if(database == "zensus"){ + + response <- gen_zensus_api("data/tablefile", + name = name, + area = area, + compress = compress, + transpose = transpose, + startyear = startyear, + endyear = endyear, + regionalvariable = regionalvariable, + regionalkey = regionalkey, + classifyingvariable1 = classifyingvariable1, + classifyingkey1 = classifyingkey1, + classifyingvariable2 = classifyingvariable2, + classifyingkey2 = classifyingkey2, + classifyingvariable3 = classifyingvariable3, + classifyingkey3 = classifyingkey3, + stand = stand, + language = language, + format = "ffcsv", + job = FALSE) + + #----------------------------------------------------------------------------- + + } else if (database == "genesis"){ + + response <- gen_api("data/tablefile", + name = name, + area = area, + compress = compress, + transpose = transpose, + startyear = startyear, + endyear = endyear, + regionalvariable = regionalvariable, + regionalkey = regionalkey, + classifyingvariable1 = classifyingvariable1, + classifyingkey1 = classifyingkey1, + classifyingvariable2 = classifyingvariable2, + classifyingkey2 = classifyingkey2, + classifyingvariable3 = classifyingvariable3, + classifyingkey3 = classifyingkey3, + stand = stand, + language = language, + format = "ffcsv", + job = job) + + #----------------------------------------------------------------------------- + + } else if (database == "regio") { + + response <- gen_regio_api("data/tablefile", + name = name, + area = area, + compress = compress, + transpose = transpose, + startyear = startyear, + endyear = endyear, + regionalvariable = regionalvariable, + regionalkey = regionalkey, + classifyingvariable1 = classifyingvariable1, + classifyingkey1 = classifyingkey1, + classifyingvariable2 = classifyingvariable2, + classifyingkey2 = classifyingkey2, + classifyingvariable3 = classifyingvariable3, + classifyingkey3 = classifyingkey3, + stand = stand, + language = language, + format = "ffcsv", + job = job) + + #----------------------------------------------------------------------------- + + } else { + + stop("Parameter 'database' has to be 'zensus', 'regio' or 'genesis'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + # Data processing + + response_type <- resp_check_data(response) + + # Returning the table desired by the user + return(return_table_object(response = response, + response_type = response_type, + language = language, + all_character = all_character)) + } diff --git a/R/gen_update_evas.R b/R/gen_update_evas.R new file mode 100644 index 0000000..2de1a87 --- /dev/null +++ b/R/gen_update_evas.R @@ -0,0 +1,38 @@ +#' gen_update_evas +#' +#' @description Function to web scrape the EVAS numbers from the EVAS website and save them as a .rda file. Takes no parameters. +#' +#' @return An updated .rda file containing the latest EVAS numbers +#' @export +#' +gen_update_evas <- function(){ + + # Check rvest package + if (!requireNamespace("rvest", quietly = TRUE)) { + + stop("If you want to use this specific function, the package {rvest} needs to be installed.", + call. = FALSE) + + } + + # Path selection + data_path <- system.file("data", "evas_list.rda", package = "restatis") + + # Define the src URL of the EVAS numbers + url <- "https://erhebungsdatenbank.estatistik.de/eid/TabelleEvas.jsp" + + # Read the HTML content of the URL + html <- rvest::read_html(url) + html <- rvest::html_nodes(html, "table") + html <- purrr::map_dfr(html, function(table){ rvest::html_table(table, convert = FALSE) }) + html <- html[, c("EVAS", "Beschreibung")] + html$Titel <- paste(html$EVAS, html$Beschreibung, sep = " - ") + attr(html, "Update_Date") <- format(Sys.Date(), "%Y%m%d") + + # Modify the data object + evas_list <- html + + # Return the modified data object + save(evas_list, file = data_path) + +} diff --git a/R/gen_var2-val2.R b/R/gen_var2-val2.R index 8cbe072..ec1e2ec 100644 --- a/R/gen_var2-val2.R +++ b/R/gen_var2-val2.R @@ -1,14 +1,17 @@ -#' gen_var2stat: Get Variables From a Statistic +#' gen_var2stat #' -#' @description Function to generate variables from statistics in Genesis. +#' @description Function to generate variables from statistics #' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder. -#' @param detailed a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE. -#' @param sortcriterion a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code". -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -19,84 +22,138 @@ #' } #' gen_var2stat <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), detailed = FALSE, sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ...) { + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(code = code, detailed = detailed, error.ignore = error.ignore, - sortcriterion = sortcriterion) + sortcriterion = sortcriterion, + database = gen_fun, + caller = caller, + verbose = verbose) sortcriterion <- match.arg(sortcriterion) + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + #----------------------------------------------------------------------------- - # Processing #### - results_raw <- gen_api("catalogue/variables2statistic", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - sortcriterion = sortcriterion, - ...) + # Processing # + res <- lapply(gen_fun, function(db){ - results_json <- test_if_json(results_raw) + if (isTRUE(verbose)) { - empty_object <- test_if_error(results_json, para = error.ignore) + info <- paste("Started the processing of", rev_database_function(db), "database.") - if(isTRUE(empty_object)){ - list_of_variables <- "No `variables`- object found for your request." - } else if(isFALSE(empty_object)){ - list_of_variables <- results_json$Status$Content - } else if(empty_object == "DONE"){ - if (isTRUE(detailed)) { + message(info) - list_of_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Type", - "Values", - "Information")) + } - } else { + #--------------------------------------------------------------------------- - list_of_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content" - )) + par_list <- list(endpoint = "catalogue/variables2statistic", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + ...) - } + if (db == "gen_api" | db == "gen_regio_api") { - list_of_variables$Object_Type <- "Variable" + par_list <- append(par_list, list(area = area)) - list_of_variables <- tibble::as_tibble(list_of_variables) - } + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + if (isTRUE(empty_object)) { + + list_of_variables <- "No 'variables' object found for your request." + + } else if (isFALSE(empty_object)) { + + list_of_variables <- results_json$Status$Content + + } else if (empty_object == "DONE") { + + if (isTRUE(detailed)) { + + list_of_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Type", + "Values", + "Information")) + + } else { + + list_of_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content")) + + } + + list_of_variables$Object_Type <- "Variable" + + list_of_variables <- tibble::as_tibble(list_of_variables) + + } + + #--------------------------------------------------------------------------- + + # Summary # + list_resp <- list("Variables" = list_of_variables) + + attr(list_resp, "Code") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) - # Summary #### - list_resp <- list("Variables" = list_of_variables) + #----------------------------------------------------------------------------- - attr(list_resp, "Code") <- results_json$Parameter$name - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + res <- check_results(res) - return(list_resp) + return(res) } #------------------------------------------------------------------------------- -#' gen_val2var: Get Values From a Variable +#' gen_val2var #' -#' @description Function to extract the possible values from a variable from Genesis. Values for continuous variables are not extractable, so the function returns a warning message. +#' @description Function to extract the possible values from a variable. Values for continuous variables are not extractable, which is why the function returns a warning message in this case. #' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. -#' @param sortcriterion a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code". -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator for values if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE', this prevents the function to stop even if a variable has no further explanation (often the case for numerical variables). +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -106,72 +163,133 @@ gen_var2stat <- function(code = NULL, #' } #' gen_val2var <- function(code = NULL, - sortcriterion = c("code", "content"), - error.ignore = FALSE, - ...) { + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + sortcriterion = c("code", "content"), + error.ignore = TRUE, + verbose = TRUE, + ...) { + + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) check_function_input(code = code, error.ignore = error.ignore, - sortcriterion = sortcriterion) + sortcriterion = sortcriterion, + database = gen_fun, + caller = caller, + verbose = verbose) sortcriterion <- match.arg(sortcriterion) + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + + embedding <- deparse(sys.calls()) + #----------------------------------------------------------------------------- - results_raw <- gen_api("catalogue/values2variable", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - name = code, - sortcriterion = sortcriterion, - ...) + res <- lapply(gen_fun, function(db){ - results_json <- test_if_json(results_raw) + if (isTRUE(verbose)) { - empty_object <- test_if_error(results_json, para = error.ignore) + info <- paste("Started the processing of", rev_database_function(db), "database.") - if(isTRUE(empty_object)){ - list_of_variables <- "No `values`- object found for your request." - } else if(isFALSE(empty_object)){ - list_of_variables <- results_json$Status$Content - } else if(empty_object == "DONE"){ - list_of_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Variables", - "Information")) + message(info) - list_of_variables$Object_Type <- "Value" + } - list_of_variables <- tibble::as_tibble(list_of_variables) + par_list <- list(endpoint = "catalogue/values2variable", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + name = code, + ...) - } + if (db == "gen_api" | db == "gen_regio_api") { + + par_list <- append(par_list, list(area = area)) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + if (isFALSE(grepl("pairlist\\(gen_val2var", embedding))) { + + empty_object <- test_if_error_variables(results_json, para = error.ignore) + + } else { + + empty_object <- test_if_error(results_json, para = error.ignore, verbose = verbose) + + } + + if (isTRUE(empty_object)) { + + list_of_variables <- "No 'values' object found for your request." + + } else if (isFALSE(empty_object)) { + + list_of_variables <- results_json$Status$Content + + } else if (empty_object == "DONE") { + + list_of_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Variables", + "Information")) + + list_of_variables$Object_Type <- "Value" - list_resp <- list("Values" = list_of_variables) + list_of_variables <- tibble::as_tibble(list_of_variables) - attr(list_resp, "Name") <- results_json$Parameter$name - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + } - names(list_resp) <- paste("Values of", results_json$Parameter$name) + list_resp <- list("Values" = list_of_variables) - return(list_resp) + attr(list_resp, "Name") <- results_json$Parameter$name + attr(list_resp, "Database") <- rev_database_function(db) + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + names(list_resp) <- paste("Values of", results_json$Parameter$name) + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- + + res <- check_results(res) + + return(res) } #------------------------------------------------------------------------------- -#' gen_val2var2stat: Get Values From a Variable From a Statistic +#' gen_val2var2stat #' #' @description Get values from variables from a statistic. Values for continuous variables cannot be extracted, so the function returns a warning message. #' -#' @param code a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder. -#' @param detailed a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. This parameter only affects the details of the variables-related output. The default is FALSE. -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param sortcriterion a string. Indicator if the output should be sorted by 'code' or 'content'. This is an parameter of the Genesis API call itself. The default is "code". -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param detailed Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore.var Boolean. Indicator for variables if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param error.ignore.val Boolean. Indicator for values if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE', this prevents the function to stop even if a variable has no further explanation (often the case for numerical variables). +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -182,55 +300,105 @@ gen_val2var <- function(code = NULL, #' } #' gen_val2var2stat <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), detailed = FALSE, sortcriterion = c("code", "content"), - error.ignore = FALSE, + error.ignore.var = FALSE, + error.ignore.val = TRUE, + verbose = TRUE, ...) { + caller <- as.character(match.call()[1]) + + gen_fun <- test_database_function(database, + error.input = error.ignore.var, + text = verbose) + check_function_input(code = code, - detailed = detailed, - error.ignore = error.ignore, - sortcriterion = sortcriterion) + error.ignore = error.ignore.var, + sortcriterion = sortcriterion, + database = gen_fun, + caller = caller, + verbose = verbose) sortcriterion <- match.arg(sortcriterion) + if ("all" %in% database) { + + database <- c("genesis", "zensus", "regio") + + } + #----------------------------------------------------------------------------- - variables <- suppressMessages(suppressWarnings(gen_var2stat(code = code, - detailed = detailed, - sortcriterion = sortcriterion, - error.ignore = error.ignore, - ...))) + res <- lapply(database, function(db){ + + variables <- suppressMessages(suppressWarnings(gen_var2stat(code = code, + database = db, + area = area, + detailed = detailed, + sortcriterion = sortcriterion, + error.ignore = error.ignore.var, + verbose = verbose, + ...))) + + if (length(dim(variables$Variables)) != 2) { + + if (variables$Variables == "No 'variables' object found for your request.") { + + list_resp <- variables + + } + + } else { + + list_values <- list() + + lapply(variables$Variables$Code, function(x) { + + zwisch <- suppressMessages(suppressWarnings(gen_val2var(code = x, + database = db, + area = area, + sortcriterion = sortcriterion, + error.ignore = error.ignore.val, + verbose = verbose))) + + list_values <<- append(list_values, zwisch) + + }) - list_values <- list() + list_resp <- list(variables, list_values) - lapply(variables$Variables$Code, function(x) { + } - zwisch <- suppressMessages(suppressWarnings(gen_val2var(code = x, - sortcriterion = sortcriterion, - error.ignore = error.ignore))) - list_values <<- append(list_values, zwisch) + return(list_resp) }) - list_resp <- list(variables, list_values) + #----------------------------------------------------------------------------- + + res <- check_results(res) - return(list_resp) + return(res) } #------------------------------------------------------------------------------- -#' gen_search_vars: Search for Specific Variables +#' gen_search_vars #' -#' @description Function to search for specific variables in Genesis. +#' @description Function to search for specific variables #' -#' @param code a string with a maximum length of 6. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder. -#' @param sortcriterion a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code". -#' @param error.ignore a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. -#' @param ... Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see `vignette("additional_parameter")`. +#' @param code Character string with a maximum length of 6 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration. +#' @param database Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'. +#' @param area Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'. +#' @param sortcriterion Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'. +#' @param error.ignore Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'. +#' @param verbose Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings. +#' @param ... Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see `vignette("additional_parameter")`. #' -#' @return A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +#' @return A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. #' @export #' #' @examples @@ -240,55 +408,104 @@ gen_val2var2stat <- function(code = NULL, #' } #' gen_search_vars <- function(code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ...) { caller <- as.character(match.call()[1]) + gen_fun <- test_database_function(database, + error.input = error.ignore, + text = verbose) + check_function_input(code = code, error.ignore = error.ignore, sortcriterion = sortcriterion, - caller = caller) + database = gen_fun, + caller = caller, + verbose = verbose) sortcriterion <- match.arg(sortcriterion) + area <- match.arg(area) + + area <- switch(area, all = "all", public = "\u00F6ffentlich", user = "benutzer") + #----------------------------------------------------------------------------- - results_raw <- gen_api("catalogue/variables", - username = gen_auth_get()$username, - password = gen_auth_get()$password, - selection = code, - sortcriterion = sortcriterion, - ...) + res <- lapply(gen_fun, function(db){ - results_json <- test_if_json(results_raw) + if (isTRUE(verbose)) { - empty_object <- test_if_error(results_json, para = error.ignore) + info <- paste("Started the processing of", rev_database_function(db), "database.") - if(isTRUE(empty_object)){ - list_of_variables <- "No `variables`- object found for your request." - } else if(isFALSE(empty_object)){ - list_of_variables <- results_json$Status$Content - } else if(empty_object == "DONE"){ - list_of_variables <- binding_lapply(results_json$List, - characteristics = c("Code", - "Content", - "Type", - "Information")) + message(info) - list_of_variables$Object_Type <- "Variable" + } - list_of_variables <- tibble::as_tibble(list_of_variables) - } + #--------------------------------------------------------------------------- + + par_list <- list(endpoint = "catalogue/variables", + username = gen_auth_get(database = rev_database_function(db))$username, + password = gen_auth_get(database = rev_database_function(db))$password, + selection = code, + sortcriterion = sortcriterion, + area = area, + ...) + + if (db == "gen_api" | db == "gen_regio_api") { + + par_list <- append(par_list, list(area = area)) + + } + + results_raw <- do.call(db, par_list) + + results_json <- test_if_json(results_raw) + + empty_object <- test_if_error(results_json, para = error.ignore) + + if (isTRUE(empty_object)) { - list_resp <- list("Variables" = list_of_variables) + list_of_variables <- "No 'variables' object found for your request." + + } else if (isFALSE(empty_object)) { + + list_of_variables <- results_json$Status$Content + + } else if (empty_object == "DONE") { + + list_of_variables <- binding_lapply(results_json$List, + characteristics = c("Code", + "Content", + "Type", + "Information")) + + list_of_variables$Object_Type <- "Variable" + + list_of_variables <- tibble::as_tibble(list_of_variables) + + } + + list_resp <- list("Variables" = list_of_variables) + + attr(list_resp, "Code") <- results_json$Parameter$selection + attr(list_resp, "Database") <- database[1] + attr(list_resp, "Language") <- results_json$Parameter$language + attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength + attr(list_resp, "Copyright") <- results_json$Copyright + + return(list_resp) + + }) + + #----------------------------------------------------------------------------- - attr(list_resp, "Code") <- results_json$Parameter$selection - attr(list_resp, "Language") <- results_json$Parameter$language - attr(list_resp, "Pagelength") <- results_json$Parameter$pagelength - attr(list_resp, "Copyright") <- results_json$Copyright + res <- check_results(res) - return(list_resp) + return(res) } diff --git a/R/globals.R b/R/globals.R new file mode 100644 index 0000000..5ddbeb3 --- /dev/null +++ b/R/globals.R @@ -0,0 +1,4 @@ +utils::globalVariables(c("evas_list", + "verbose", + "menu", + "setNames")) diff --git a/R/utils.R b/R/utils.R deleted file mode 100644 index 68b0843..0000000 --- a/R/utils.R +++ /dev/null @@ -1,525 +0,0 @@ -resp_check_data_csv <- function(resp) { - if (httr2::resp_content_type(resp) != "text/csv") { - stop("No data found that meets the specified parameters", call. = FALSE) - } -} - -param_check_year <- function(year) { - - if (as.integer(year) < 1900 || as.integer(year) > 2100) { - - stop("The parameter 'year' has been misspecified (>= 1900 or <= 2100).", - call. = FALSE) - - } - -} - -param_collapse_vec <- function(vec) { - paste0(vec, collapse = ",") -} - -#------------------------------------------------------------------------------- - -# Forming_evas ---- - -forming_evas <- function(list_of) { - evas_list_long_20220724 <- restatis::evas_list_long_20220724 - - # Progress them - list_of$Main <- apply(list_of, 1, function(x) { - evas_list_long_20220724$Titel[evas_list_long_20220724$EVAS == substr(x["Code"], 1, 1)] - }) - - list_of$Main2 <- apply(list_of, 1, function(x) { - evas_list_long_20220724$Titel[evas_list_long_20220724$EVAS == substr(x["Code"], 1, 2)] - }) - - list_of$Main3 <- apply(list_of, 1, function(x) { - evas_list_long_20220724$Titel[evas_list_long_20220724$EVAS == substr(x["Code"], 1, 3)] - }) - - list_of$Main5 <- apply(list_of, 1, function(x) { - evas_list_long_20220724$Titel[evas_list_long_20220724$EVAS == substr(x["Code"], 1, 5)] - }) - - nestedlist <- split(list_of, list_of$Main, drop = TRUE) - - nestedlist <- lapply(nestedlist, function(x) { - split(x, x["Main2"], drop = TRUE) - }) - - nestedlist <- lapply(nestedlist, function(x) { - lapply(x, function(y) { - split(y, y["Main3"]) - }) - }) - - nestedlist <- lapply(nestedlist, function(x) { - lapply(x, function(y) { - lapply(y, function(z) { - split(z, z["Main5"]) - }) - }) - }) - - aba <- lapply( - nestedlist, function(d) { - lapply(d, function(z) { - lapply(z, function(y) { - lapply(y, function(x) { - x[!( - names(x) - %in% c("Main", "Main2", "Main3", "Main5"))] - }) - }) - }) - } - ) - - return(aba) -} - -#------------------------------------------------------------------------------- - -# check_function_input ---- - -check_function_input <- function(code = NULL, - term = NULL, - sortcriterion = NULL, - category = NULL, - detailed = NULL, - type = NULL, - date = NULL, - similarity = NULL, - error.ignore = NULL, - ordering = NULL, - caller = NULL) { - # Code & Term ---- - - if (is.null(code) && is.null(term)) { - if (!(caller %in% c( - "gen_search_vars", - "restatis::gen_search_vars" - ))) { - stop("Parameter 'code' or 'term' must NOT be NULL.", - call. = FALSE - ) - } - } - - # Code ---- - - if (!is.null(code)) { - if (length(code) != 1L) { - stop("Parameter 'code' must be a single string.", - call. = FALSE - ) - } - - if (!is.character(code)) { - stop("Parameter 'code' has to be of type 'character'.", - call. = FALSE - ) - } - } - - # Term ---- - - if (!is.null(term)) { - if (length(term) != 1L) { - stop("Parameter 'term' must be a single string.", - call. = FALSE - ) - } - - if (!is.character(term)) { - stop("Parameter 'term' has to be of type 'character'.", - call. = FALSE - ) - } - - if (nchar(term) > 15 && !(caller %in% c("gen_find", "restatis::gen_find"))) { - stop("Parameter 'term' cannot consist of more than 15 characters.", - call. = FALSE - ) - } - } - - # sortcriterion ---- - - if (!is.null(sortcriterion)) { - if (!is.character(sortcriterion)) { - stop("Parameter 'sortcriterion' has to be of type 'character'.", - call. = FALSE - ) - } - - if (length(sortcriterion) == 1) { - if (!(sortcriterion %in% c("code", "content"))) { - stop("Parameter 'sortcriterion' has to be 'code' or 'content'.", - call. = FALSE - ) - } - } - } - - # category ---- - - if (!is.null(category)) { - if (!(length(category) %in% c(1:3)) && caller %in% c( - "restatis::gen_catalogue", - "restatis::gen_objects2var", - "restatis::gen_objects2stat", - "gen_catalogue", - "gen_objects2var", - "gen_objects2stat" - )) { - stop("Parameter 'category' has to have a length of 1 to 3.") - } - - #---------------------------------------- - - if (!(length(category) %in% c(1, 5)) && caller %in% c( - "restatis::gen_find", - "gen_find" - )) { - stop("Parameter 'category' must have a length of 1.") - } - - #---------------------------------------- - - if (length(category) != 1 && caller %in% c( - "restatis::gen_metadata", - "gen_metadata" - )) { - stop("Parameter 'category' must have a length of 1. Please specify the category.") - } - - #--------------------------------------------------------------------------- - - if (caller %in% c( - "restatis::gen_catalogue", "restatis::gen_objects2var", - "gen_catalogue", "gen_objects2var" - )) { - if (!all(category %in% c("tables", "cubes", "statistics"))) { - stop("Available categories are tables, statistics, and cubes.", - call. = FALSE - ) - } - } - - #---------------------------------------- - - if (caller %in% c("restatis::gen_objects2stat", "gen_objects2stat")) { - if (!all(category %in% c("tables", "cubes", "variables"))) { - stop("Available categories are tables, variables, and cubes.", - call. = FALSE - ) - } - } - - #---------------------------------------- - - if (caller %in% c("restatis::gen_find", "gen_find")) { - if (!all(category %in% c("all", "tables", "statistics", "variables", "cubes"))) { - stop("Available categories are all, tables, statistics, variables, and cubes.", - call. = FALSE - ) - } - } - - #---------------------------------------- - - if (caller %in% c("restatis::gen_metadata", "gen_metadata")) { - if (!all(category %in% c("Cube", "Statistic", "Table", "Variable", "Value"))) { - stop("Available categories are Cube, Table, Statistic, Variable, and Value.", - call. = FALSE - ) - } - } - } - - - # detailed ---- - - if (!is.null(detailed)) { - if (!is.logical(detailed) || length(detailed) != 1) { - stop("Parameter 'detailed' has to be of type 'logical' and of length 1.", - call. = FALSE - ) - } - - if (isFALSE(detailed)) { - message("Use 'detailed = TRUE' to obtain the complete output.") - } - } - - # type ---- - - if (!is.null(type)) { - if (!all(type %in% c("all", "tables", "statistics", "statisticsUpdates"))) { - stop("Available categories for parameter 'type' are 'tables', 'statistics', 'statistic updates', and 'all'.", - call. = FALSE - ) - } - } - - # date ---- - - if (!is.null(date)) { - - if (identical(date, c("now", "week_before", "month_before", "year_before"))) { - - message("Please note that this date is calculated automatically and may differ - from manually entered data. Manually entered data must have - the format DD.MM.YYYY.") - - return("now") - - } - - if (!(length(date) %in% c(1, 4))) { - - stop("Parameter 'date' has to be of length 4 (c('now', 'week_before', 'month_before', 'year_before') for the default option of 'now' or of length 1.))", - call. = FALSE) - - } - - if (length(date) == 1) { - - if (date %in% c("now", "week_before", "month_before", "year_before")) { - - message("Please note that this date is calculated automatically and may differ - from manually entered data. Manually entered data must have - the format DD.MM.YYYY.") - - return(date) - } - - if (!(date %in% c("now", "week_before", "month_before", "year_before"))) { - - if (!is.character(date)) { - - stop("If using a specific date for parameter 'date', it has to be of type 'character' (format: DD.MM.YYYY).", - call. = FALSE) - - } - - if (length(date) != 1 || nchar(date) != 10) { - stop("If specifying a specific date for parameter 'date', it has to be of length 1 and format DD.MM.YYYY.", - call. = FALSE) - } - - return(date) - } - } - } - - # similarity ---- - - if (!is.null(similarity)) { - if (!is.logical(similarity)) { - stop("Parameter 'similarity' has to be of type 'logical'.", - call. = FALSE - ) - } - } - - # error.ignore ---- - - if (!is.null(error.ignore)) { - if (length(error.ignore == 1)) { - if (!is.logical(error.ignore) || length(error.ignore) != 1) { - stop("Parameter 'error.ignore' has to be of type 'logical' and of length 1.", - call. = FALSE - ) - } - } - - if (isTRUE(error.ignore)) { - message("Use 'error.ignore = FALSE' to stop the function at the point where no object could be found.") - } - } - - # ordering ---- - - if (!is.null(ordering)) { - if (!is.logical(ordering) || length(ordering) != 1) { - stop("Parameter 'ordering' has to be of type 'logical' and of length 1.", - call. = FALSE - ) - } - - if (isFALSE(ordering)) { - message("Use 'ordering = TRUE' to obtain the output ordered based on the search term presence.") - } - } -} - -#------------------------------------------------------------------------------- - -# test_if_json ---- - -test_if_json <- function(input) { - if ((httr2::resp_content_type(input) == "application/json") && !is.na(httr2::resp_content_type(input))) { - results_json <- httr2::resp_body_json(input) - } else { - stop("No json-csv file detected.", call. = FALSE) - } - - return(results_json) -} - -#------------------------------------------------------------------------------- - -# test_if_error_find ---- - -test_if_error_find <- function(input, para) { - if (input$Status$Code != 0 && isTRUE(para)) { - stop(input$Status$Content) - } else if (input$Status$Code != 0 && isFALSE(para)) { - message(input$Status$Content) - - message("Artificial token is used.") - - empty_object <- FALSE - } else { - empty_object <- "DONE" - } - - return(empty_object) -} - -#------------------------------------------------------------------------------- - -# test_if_error ---- - -test_if_error <- function(input, para) { - if (input$Status$Code == 104 && isFALSE(para)) { - stop("No object found for your request. Check your parameters if you expected an object for this request.", - call. = FALSE - ) - } else if (input$Status$Code != 0 && isFALSE(para)) { - stop(input$Status$Content, call. = FALSE) - } else if (input$Status$Code == 104 && isTRUE(para)) { - message("No object found for your request. Check your parameters if you expected an object for this request. Artificial token is used.") - - empty_object <- TRUE - } else if (input$Status$Code != 0 && isTRUE(para)) { - message(input$Status$Content) - - message("Artificial token is used.") - - empty_object <- FALSE - } else { - empty_object <- "DONE" - } - - return(empty_object) -} - -#------------------------------------------------------------------------------- - -# test_if_process_further ---- - -test_if_process_further <- function(input, para) { - if (sum(unlist(lapply(input[4:8], function(x) { - is.null(x) - }))) == 5 && isFALSE(para)) { - stop("No object found for your request. Check your parameters if you expected an object for this request.") - } else if (sum(unlist(lapply(input[4:8], function(x) { - is.null(x) - }))) == 5 && isTRUE(para)) { - message("No object found for your request. Check your parameters if you expected an object for this request. Artificial token is used.") - - empty_object <- TRUE - } else { - empty_object <- "DONE" - } - - return(empty_object) -} - -#------------------------------------------------------------------------------- - -# binding_lapply ---- - -binding_lapply <- function(x, - characteristics) { - list_of <- stats::setNames(data.frame(matrix(ncol = length(characteristics), nrow = 0)), characteristics) - - lapply(x, function(x) { - zwisch <- unlist(x[characteristics]) - - list_of <<- rbind(list_of, zwisch[characteristics]) - }) - - colnames(list_of) <- characteristics - - return(list_of) -} - -#------------------------------------------------------------------------------- - -# gsub ---- - -ggsub <- function(x) { - a <- gsub(".*:", "", x$Content) - - return(a) -} - -#------------------------------------------------------------------------------- - -# spezifisch_create ---- - -spezifisch_create <- function(x) { - a <- unlist(lapply(strsplit(x$Spezifisch, ","), length)) - - return(a) -} - -#------------------------------------------------------------------------------- - -# titel_search ---- - -titel_search <- function(x, term) { - split <- unlist(strsplit(gsub(" ", "und", term), c("und|UND|Und|\\&|ODER|oder|Oder|\\|"))) - - split <- split[sapply(split, function(y) { - nchar(y) > 0 - })] - - if (length(split) == 1) { - a <- grepl(split, x$Content, ignore.case = TRUE) - } else if (grep("ODER|oder|Oder|\\|", term, ignore.case = TRUE) && grep("UND|und|Und|\\|", term, ignore.case = TRUE)) { - a <- rep(FALSE, length(x$Content)) - message("Combination of words too complex for ordering. Data is processed without ordering.") - } else if (grep("ODER|oder|Oder|\\|", term, ignore.case = TRUE)) { - a <- grepl(paste(split, collapse = "|"), x$Content, ignore.case = TRUE) - } else if (grep("UND|und|Und|\\|", term, ignore.case = TRUE)) { - a <- sapply(x$Content, function(con) { - all(sapply(split, function(z) { - grepl(z, con, ignore.case = TRUE) - })) - }) - } else { - a <- rep(FALSE, length(x$Content)) - - message("Combination of words not valid for ordering. Data is processed without ordering.") - } - - return(a) -} - - -#------------------------------------------------------------------------------- - -# test_if_error_light ---- - -test_if_error_light <- function(input) { - if (input$Status$Code != 0) { - warning(input$Status$Content, call. = FALSE) - } -} diff --git a/R/utils_dataprocessing.R b/R/utils_dataprocessing.R new file mode 100644 index 0000000..da6ac80 --- /dev/null +++ b/R/utils_dataprocessing.R @@ -0,0 +1,1316 @@ +#------------------------------------------------------------------------------- +# Util functions related to data processing +#------------------------------------------------------------------------------- + +#' param_check_year +#' +#' @param year Year as parameter value +#' +param_check_year <- function(year) { + + if (as.integer(year) < 1900 || as.integer(year) > 2100) { + + stop("The parameter 'year' has been misspecified (>= 1900 or <= 2100).", + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' param_check_regionalkey +#' +#' @param regionalkey Regional key +#' +param_check_regionalkey <- function(regionalkey) { + + if (!is.null(regionalkey) & !is.character(regionalkey)) { + + stop("The parameter 'regionalkey' needs to be of type 'character'.", + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' param_collapse_vec +#' +#' @param vec Vector to be collapsed +#' +param_collapse_vec <- function(vec) { + + paste0(vec, collapse = ",") + +} + +#------------------------------------------------------------------------------- + +#' forming_evas +#' +#' @param list_of List of EVAS to iterate over +#' +forming_evas <- function(list_of) { + + # Load data + evas_list <- restatis::evas_list + + #----------------------------------------------------------------------------- + # Process them + + list_of$Main <- apply(list_of, 1, function(x) { + + obj <- evas_list$Titel[evas_list$EVAS == substr(x["Code"], 1, 1)] + + if (length(obj) == 0) { + + obj <- "No assignment" + + } + + return(obj) + + }) + + #----------------------------------------------------------------------------- + + list_of$Main2 <- apply(list_of, 1, function(x) { + + obj <- evas_list$Titel[evas_list$EVAS == substr(x["Code"], 1, 2)] + + if (length(obj) == 0) { + + obj <- "No assignment" + + } + + return(obj) + + }) + + #----------------------------------------------------------------------------- + + list_of$Main3 <- apply(list_of, 1, function(x) { + + obj <- evas_list$Titel[evas_list$EVAS == substr(x["Code"], 1, 3)] + + if (length(obj) == 0) { + + obj <- "No assignment" + + } + + return(obj) + + }) + + #----------------------------------------------------------------------------- + + list_of$Main5 <- apply(list_of, 1, function(x) { + + obj <- evas_list$Titel[evas_list$EVAS == substr(x["Code"], 1, 5)] + + if (length(obj) == 0) { + + obj <- "No assignment" + + } + + return(obj) + + }) + + #----------------------------------------------------------------------------- + + keep <- colnames(list_of[,1:(ncol(list_of) - 4)]) + + #----------------------------------------------------------------------------- + if (sum(list_of$Main == "No assignment") != nrow(list_of)) { + + nestedlist <- split(list_of, list_of$Main, drop = TRUE) + + #--------------------------------------------------------------------------- + if (sum(list_of$Main2 == "No assignment") != nrow(list_of)) { + + nestedlist <- lapply(nestedlist, function(x) { + + obj <- split(x, x["Main2"], drop = TRUE) + + }) + + #------------------------------------------------------------------------- + if (sum(list_of$Main3 == "No assignment") != nrow(list_of)) { + + nestedlist <- lapply(nestedlist, function(x) { + + lapply(x, function(y) { + + obj <- split(y, y["Main3"]) + + }) + + }) + + #----------------------------------------------------------------------- + if (sum(list_of$Main5 == "No assignment") != nrow(list_of)) { + + nestedlist <- lapply(nestedlist, function(x) { + + lapply(x, function(y) { + + lapply(y, function(z) { + + obj <- split(z, z["Main5"]) + + return(obj) + + }) + + }) + + }) + + #--------------------------------------------------------------------- + + nestedlist <- lapply(nestedlist, function(d){ + + lapply(d, function(y){ + + lapply(y, function(x){ + + lapply(x, function(r, remain){ + + obj <- r[keep] + obj <- tibble::as_tibble(obj) + + }, + + remain = keep)}) + + }) + + }) + + #----------------------------------------------------------------------- + + } else { + + nestedlist <- lapply(nestedlist, function(d){ + + lapply(d, function(y){ + + lapply(y, function(r, remain){ + + obj <- r[keep] + obj <- tibble::as_tibble(obj) + + }, + + remain = keep + + )} + + )} + + )} + + #------------------------------------------------------------------------- + + } else { + + nestedlist <- lapply(nestedlist, function(d){ + + lapply(d, function(r, remain){ + + obj <- r[keep] + obj <- tibble::as_tibble(obj) + }, + + remain = keep + + )} + + )} + + #--------------------------------------------------------------------------- + + } else { + + nestedlist <- lapply(nestedlist, function(r, remain){ + + obj <- r[keep] + obj <- tibble::as_tibble(obj) + + }, + + remain = keep) + + } + + } else { + + nestedlist <- tibble::as_tibble(list_of[keep]) + + } + + return(nestedlist) + +} + +#------------------------------------------------------------------------------- + +#' check_function_input +#' +#' @param code Parameter to be checked +#' @param term Parameter to be checked +#' @param sortcriterion Parameter to be checked +#' @param category Parameter to be checked +#' @param detailed Parameter to be checked +#' @param type Parameter to be checked +#' @param date Parameter to be checked +#' @param similarity Parameter to be checked +#' @param error.ignore Parameter to be checked +#' @param ordering Parameter to be checked +#' @param database Parameter to be checked +#' @param caller Parameter to be checked +#' @param area Parameter to be checked +#' @param verbose Parameter to be checked +#' @param raw Parameter to be checked +#' +check_function_input <- function(code = NULL, + term = NULL, + sortcriterion = NULL, + category = NULL, + detailed = NULL, + type = NULL, + date = NULL, + similarity = NULL, + error.ignore = NULL, + ordering = NULL, + database = NULL, + area = NULL, + caller = NULL, + verbose = NULL, + raw = NULL) { + + #----------------------------------------------------------------------------- + # verbose ---- + if (!is.null(verbose)) { + + #--------------------------------------------------------------------------- + + if (length(verbose == 1)) { + + #------------------------------------------------------------------------- + + if (!is.logical(verbose) || length(verbose) != 1) { + + stop("Parameter 'verbose' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + } + + } + + #----------------------------------------------------------------------------- + # Code & Term ---- + + if (is.null(code) && is.null(term) && !is.null(caller)) { + + if (!(caller %in% c("gen_search_vars", "restatis::gen_search_vars"))) { + + stop("Parameter 'code' or 'term' must NOT be NULL.", + call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + # Code ---- + + if (!is.null(code)) { + + if (length(code) != 1L) { + + stop("Parameter 'code' must be a single string.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (!is.character(code)) { + + stop("Parameter 'code' has to be of type 'character'.", + call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + # Term ---- + + if (!is.null(term)) { + + if (length(term) != 1L) { + + stop("Parameter 'term' must be a single string.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (!is.character(term)) { + + stop("Parameter 'term' has to be of type 'character'.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (nchar(term) > 15 && !(caller %in% c("gen_find", "restatis::gen_find"))) { + + stop("Parameter 'term' cannot consist of more than 15 characters.", + call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + # sortcriterion ---- + + if (!is.null(sortcriterion)) { + + if (!is.character(sortcriterion)) { + + stop("Parameter 'sortcriterion' has to be of type 'character'.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (length(sortcriterion) == 1) { + + if (!(sortcriterion %in% c("code", "content"))) { + + stop("Parameter 'sortcriterion' has to be 'code' or 'content'.", + call. = FALSE) + + } + + } + + } + + #----------------------------------------------------------------------------- + # category ---- + + if (!is.null(category)) { + + if (!(length(category) %in% c(1:3)) && + caller %in% c("restatis::gen_catalogue", + "restatis::gen_objects2var", + "restatis::gen_objects2stat", + "gen_catalogue", + "gen_objects2var", + "gen_objects2stat")) { + + stop("Parameter 'category' has to have a length of 1 to 3.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (!(length(category) %in% c(1, 5)) && + caller %in% c("restatis::gen_find", "gen_find")) { + + stop("Parameter 'category' must have a length of 1.", + call. = FALSE) + + } + + #---------------------------------------- + + if (length(category) != 1 && caller %in% c("restatis::gen_metadata", "gen_metadata")) { + + stop("Parameter 'category' must have a length of 1. Please specify the category.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (caller %in% c("restatis::gen_catalogue", + "restatis::gen_objects2var", + "gen_catalogue", + "gen_objects2var")) { + + #------------------------------------------------------------------------- + + if("gen_zensus_api" %in% database){ + + #----------------------------------------------------------------------- + + if (!all(category %in% c("tables", "cubes", "statistics"))) { + + stop("Available categories are 'tables' and 'statistics'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + if (length(category) == 1 && + "cubes" %in% category && + isFALSE(error.ignore) && + isTRUE(verbose)) { + + stop("Available categories for 'zensus' database are: 'tables' and 'statistics'.", + call. = FALSE) + + + #----------------------------------------------------------------------- + + } else if (length(category) == 1 && + "cubes" %in% category && + isTRUE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for the 'zensus' database are: 'tables' and 'statistics'.\nFunction is continued with a placeholder for the 'cubes' output.", + call. = FALSE) + + } else if ("cubes" %in% category && + isFALSE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for 'zensus'-database are: 'tables' and 'statistics'.", + call. = FALSE) + + } else if ("cubes" %in% category && + isTRUE(error.ignore) && isTRUE(verbose)) { + + warning("Available categories for 'zensus'-database are: 'tables' and 'statistics'.\nFunction is continued with specified 'category'-parameter excluding 'cubes'.", + call. = FALSE) + + } + + } + + #------------------------------------------------------------------------------- + + if("gen_api" %in% database){ + + if (!all(category %in% c("tables", "cubes", "statistics"))) { + + stop("Available categories are 'tables', 'statistics', and 'cubes'.", + call. = FALSE) + + } + + } + + } + + #--------------------------------------------------------------------------- + + if (caller %in% c("restatis::gen_objects2stat", + "gen_objects2stat")) { + + #------------------------------------------------------------------------- + + if("gen_zensus_api" %in% database){ + + #----------------------------------------------------------------------- + + if (!all(category %in% c("tables", "cubes", "variables"))) { + + stop("Available categories are 'tables' and 'variables'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + if (length(category) == 1 && + "cubes" %in% category && + isFALSE(error.ignore)) { + + stop("Available categories for 'zensus' database are: 'tables' and 'variables'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + else if (length(category) == 1 && + "cubes" %in% category && + isTRUE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for 'zensus' database are: 'tables' and 'variables'.\nFunction is continued with a placeholder for the 'cubes' output.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + else if ("cubes" %in% category && + isFALSE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for 'zensus'-database are: 'tables' and 'variables'.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + else if ("cubes" %in% category && + isTRUE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for 'zensus' database are: 'tables' and 'variables'.\nFunction is continued with specified 'category'-parameter excluding 'cubes'.", + call. = FALSE) + + } + + } + + #------------------------------------------------------------------------- + + if("gen_api" %in% database){ + + if (!all(category %in% c("tables", "cubes", "variables"))) { + + stop("Available categories are 'tables', 'variables', and 'cubes'.", + call. = FALSE) + + } + + } + + } + + #--------------------------------------------------------------------------- + + if (caller %in% c("restatis::gen_find", "gen_find")) { + + #------------------------------------------------------------------------- + + if (!all(category %in% c("all", "tables", "statistics", "variables", "cubes"))) { + + #--------------------------------------------------------------------- + + if("gen_api" %in% database){ + + stop("Available categories for parameter 'category' for 'genesis' database are 'all', 'tables', 'statistics', 'variables', and 'cubes'.", + call. = FALSE) + + } + + #--------------------------------------------------------------------- + + if("gen_zensus_api" %in% database){ + + stop("Available categories for parameter 'category' for 'zensus' database are 'all', 'tables', 'statistics', and 'variables'.", + call. = FALSE) + + } + + } + + } + + #--------------------------------------------------------------------------- + + if (caller %in% c("restatis::gen_find", "gen_find")) { + + #------------------------------------------------------------------------- + + if("gen_zensus_api" %in% database){ + + #----------------------------------------------------------------------- + + if ("cubes" %in% category && + isTRUE(error.ignore) && + isTRUE(verbose)) { + + warning("Available categories for 'zensus' database are: 'all', 'tables', 'statistics', and 'variables'.\nFunction is continued with a placeholder for the 'cubes' output.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + else if ("all" %in% category && isTRUE(verbose)) { + + warning("There are generally no 'cubes' objects available for the 'zensus' database. Token is automatically used.", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + else if ("cubes" %in% category && + isFALSE(error.ignore)) { + + stop("Available categories for 'zensus' database are 'all', 'tables', 'statistics', and 'variables'.", + call. = FALSE) + + } + + } + + } + + #--------------------------------------------------------------------------- + + if (caller %in% c("restatis::gen_metadata", "gen_metadata")) { + + #------------------------------------------------------------------------- + + if("gen_api" %in% database){ + + #----------------------------------------------------------------------- + + if (!all(category %in% c("cube", "statistic", "table", "variable", "value"))) { + + stop("Available categories for parameter 'category' for 'genesis' database are 'cube', 'table', 'statistic', 'variable', and 'value'.", + call. = FALSE) + + } + + } + + #------------------------------------------------------------------------- + + else if("gen_zensus_api" %in% database) { + + if (!all(category %in% c("statistic", "table", "variable", "value"))) { + + stop("Available categories for parameter 'category' for 'zensus' database are 'table', 'statistic', 'variable', and 'value'.", + call. = FALSE) + + } + + } + + } + + } + + + #----------------------------------------------------------------------------- + # detailed ---- + + if (!is.null(detailed)) { + + if (!is.logical(detailed) || length(detailed) != 1) { + + stop("Parameter 'detailed' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (isFALSE(detailed) && isTRUE(verbose)) { + + message("Use 'detailed = TRUE' to obtain the complete output.") + + } + + } + + #------------------------------------------------------------------------------- + # type ---- + + if (!is.null(type)) { + + #--------------------------------------------------------------------------- + + if ("gen_api" %in% database){ + + #------------------------------------------------------------------------- + + if (!all(type %in% c("all", "tables", "statistics", "statisticsUpdates"))) { + + stop("Available categories for parameter 'type' for 'genesis' database are 'tables', 'statistics', 'statistic updates', and 'all'.", + call. = FALSE) + + } + + } + + #--------------------------------------------------------------------------- + + if ("gen_zensus_api" %in% database){ + + if (!all(type %in% c("all", "tables", "statistics"))) { + + stop("Available categories for parameter 'type' for 'zensus' database are 'tables', 'statistics', and 'all'.", + call. = FALSE) + + } + + } + + } + + #----------------------------------------------------------------------------- + # similarity ---- + + if (!is.null(similarity)) { + + if (!is.logical(similarity)) { + + stop("Parameter 'similarity' has to be of type 'logical'.", + call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + # error.ignore ---- + + if (!is.null(error.ignore)) { + + #--------------------------------------------------------------------------- + + if (!is.logical(error.ignore) || + length(error.ignore) != 1) { + + stop("Parameter 'error.ignore' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (isTRUE(error.ignore) && isTRUE(verbose)) { + + message("Use 'error.ignore = FALSE' to stop the function at the point where no object could be found.") + + } + + } + + #------------------------------------------------------------------------------- + # ordering ---- + + if (!is.null(ordering)) { + + if (!is.logical(ordering) || length(ordering) != 1) { + + stop("Parameter 'ordering' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (isFALSE(ordering) && isTRUE(verbose)) { + + message("Use 'ordering = TRUE' to obtain the output ordered based on the search term presence.") + + } + + } + + #----------------------------------------------------------------------------- + # area ---- + if (!is.null(area)) { + + if (!is.character(area) || length(area) != 1) { + + stop("Parameter 'area' has to be of type 'character' and of length 1.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (!area %in% c("all", "public", "user")) { + + stop("Available categories for parameter 'area' are 'all', 'public', and 'user'.") + + } + + } + + #----------------------------------------------------------------------------- + # Recommendation ---- + if(!is.null(verbose) && !is.null(error.ignore) && !is.null(database)){ + + if(isTRUE(verbose) && isFALSE(error.ignore) && length(database) > 1){ + + message("If you want to search through all databases it is often useful to set the 'error.ignore' parameter to TRUE.\nThis will prevent the function from stopping if no object is found in one of the databases.") + + } + + } + + #----------------------------------------------------------------------------- + # raw ---- + if(!is.null(raw)){ + + if (!is.logical(raw) || length(raw) != 1) { + + stop("Parameter 'raw' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + if (isTRUE(raw) && isTRUE(verbose)) { + + message("Use 'raw = FALSE' to obtain the output in a more readable format.") + + } + + if (isFALSE(raw) && isTRUE(verbose)) { + + message("The default 'raw = FALSE' can simplify some information to a significant extent.") + + } + + } + + #----------------------------------------------------------------------------- + # date ---- + + if (!is.null(date)) { + + #--------------------------------------------------------------------------- + + if (identical(date, c("now", "week_before", "month_before", "year_before"))) { + + if(isTRUE(verbose)){ + + message("Please note that per default the current system date is used.\nThis date is calculated automatically and may differ from manually entered data.\nManually entered data must have the format DD.MM.YYYY.") + + } + + return("now") + + } + + #--------------------------------------------------------------------------- + + if (!(length(date) %in% c(1, 4))) { + + stop("Parameter 'date' has to be of length 4 (c('now', 'week_before', 'month_before', 'year_before') for the default option of 'now' or of length 1.))", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (length(date) == 1) { + + #------------------------------------------------------------------------- + + if (date %in% c("now", "week_before", "month_before", "year_before")) { + + if (isTRUE(verbose)) { + + message("Please note that this date is calculated automatically and may differ from manually entered data.\nManually entered data must have the format DD.MM.YYYY.") + + } + + return(date) + + } + + #------------------------------------------------------------------------- + + if (!(date %in% c("now", "week_before", "month_before", "year_before"))) { + + #----------------------------------------------------------------------- + + if (!is.character(date)) { + + stop("If using a specific date for parameter 'date', it has to be of type 'character' (format: DD.MM.YYYY).", + call. = FALSE) + + } + + #----------------------------------------------------------------------- + + if (length(date) != 1 || + nchar(date) != 10) { + + stop("If specifying a specific date for parameter 'date', it has to be of length 1 and format DD.MM.YYYY.", + call. = FALSE) + + } + + return(date) + + } + + } + + } # The aforementioned part must be at the end of the function + +} + +#------------------------------------------------------------------------------- + +#' binding_lapply +#' +#' @param x Element to bind +#' @param characteristics Characteristics to filter for +#' +binding_lapply <- function(x, + characteristics) { + + list_of <- stats::setNames(data.frame(matrix(ncol = length(characteristics), + nrow = 0)), + characteristics) + + lapply(x, function(x) { + + zwisch <- unlist(x[characteristics]) + + list_of <<- rbind(list_of, zwisch[characteristics]) + + }) + + colnames(list_of) <- characteristics + + return(list_of) + +} + +#------------------------------------------------------------------------------- + +#' ggsub +#' +#' @param x Element to subset with $Content +#' +ggsub <- function(x) { + + a <- gsub(".*:", "", x$Content) + + return(a) + +} + +#------------------------------------------------------------------------------- + +#' spezifisch_create +#' +#' @param x Element to extract $Spezifisch from +#' +spezifisch_create <- function(x) { + + a <- unlist(lapply(strsplit(x$Spezifisch, ","), length)) + + return(a) + +} + +#------------------------------------------------------------------------------- + +#' titel_search +#' +#' @param x Element to extract $Content from +#' @param term Search term +#' @param text Indicator verbose +#' +titel_search <- function(x, term, text) { + + split <- unlist(strsplit(gsub(" ", "\\bund\\b", term), c("\\bund\\b|\\bUND\\b|\\bUnd\\b|\\&|\\bODER\\b|\\boder\\b|\\bOder\\b|\\|"))) + + split <- split[sapply(split, function(y) { + + nchar(y) > 0 + + })] + + #----------------------------------------------------------------------------- + + if (length(split) == 1) { + + a <- grepl(split, x$Content, ignore.case = TRUE) + + } else if (grep("\\bODER\\b|\\boder\\b|\\bOder\\b|\\|", term, ignore.case = TRUE) && + grep("\\bUND\\b|\\bund\\b|\\bUnd\\b|\\|", term, ignore.case = TRUE)) { + + a <- rep(FALSE, length(x$Content)) + + if (isTRUE(verbose)) { + + message("Combination of words too complex for ordering. Data is processed without ordering.") + + } + + } else if (grep("\\bODER\\b|\\boder\\b|\\bOder\\b|\\|", term, ignore.case = TRUE)) { + + a <- grepl(paste(split, collapse = "|"), x$Content, ignore.case = TRUE) + + } else if (grep("\\bUND\\b|\\bund\\b|\\bUnd\\b|\\|", term, ignore.case = TRUE)) { + + a <- sapply(x$Content, function(con) { + + all(sapply(split, function(z) { + + grepl(z, con, ignore.case = TRUE) + + })) + + }) + + } else { + + a <- rep(FALSE, length(x$Content)) + + if (isTRUE(verbose)) { + + message("Combination of words not valid for ordering. Data is processed without ordering.") + + } + + } + + return(a) + +} + +#------------------------------------------------------------------------------- +#' test_database_function +#' +#' @param input Input to test for database name +#' @param error.input Indicator error.ignore +#' @param text Indicator verbose +#' +test_database_function <- function(input, error.input, text){ + + #------------------------------------------------------------------------- + + if (!is.logical(text) || length(text) != 1) { + + stop("Parameter 'verbose' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + if (!is.logical(error.input) || length(error.input) != 1) { + + stop("Parameter 'error.ignore' has to be of type 'logical' and of length 1.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + if (sum(is.na(input)) == length(input)) { + + stop("You have to correctly specifiy a 'database' parameter. Please refer to the documentation for further information.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + res <- c() + + if ("genesis" %in% input) { + + res <- c(res, "genesis" = "gen_api") + + } + + if ("zensus" %in% input) { + + res <- c(res, "zensus" = "gen_zensus_api") + + } + + if ("regio" %in% input) { + + res <- c(res, "regio" = "gen_regio_api") + + } + + if ("all" %in% input) { + + if (isTRUE(text)) { + + message("All databases accessible to you are selected. Additional databases specified in the 'database'-parameter are ignored.") + + } + + res <- c("genesis" = "gen_api", "zensus" = "gen_zensus_api", "regio" = "gen_regio_api") + + } else if (length(res) != length(input)) { + + if (isFALSE(error.input)) { + + stop("One or more of the specified databases are not part of this package. Currently only 'genesis', 'zensus', and 'regio' are implemented.", + call. = FALSE) + + } else { + + if (isTRUE(text)) { + + message("One or more of the specified databases are not part of this package. The function is continued with the available databases that you specified.") + + } + + } + + } + + #----------------------------------------------------------------------------- + + check <- sapply(res, function(y) { + + nam <- rev_database_function(y) + + result <- tryCatch({ + + user <- gen_auth_get(nam)$username + + }, error = function(e) { + + return(FALSE) + + }) + + if (isFALSE(result)) { + + return(FALSE) + + } else { + + return(TRUE) + + } + + }) + + #----------------------------------------------------------------------------- + + if (sum(check) == 0) { + + stop("None of the specified databases are accessible to you. Please check your credentials.", + call. = FALSE) + + } else if (any(check == FALSE)) { + + if (isTRUE(error.input)) { + + if (isTRUE(text)) { + + mess <- paste("The following databases are not accessible to you:", names(res[!check])) + + message(mess) + + message("The function is continued with the available databases that you specified.") + + } + + res <- res[check] + + } else { + + mess <- paste("The following databases are not accessible to you:", names(res[!check]), "\nPlease check your credentials.") + + stop(mess, call. = FALSE) + + } + + } + + #----------------------------------------------------------------------------- + + if (identical(res, c())) { + + stop("You have to correctly specifiy a 'database' parameter. Please refer to the documentation for further information.", + call. = FALSE) + + } else { + + return(res) + + } + +} + +#------------------------------------------------------------------------------- +#' rev_database_function +#' +#' @param input Input to test for database name +#' +rev_database_function <- function(input){ + + input[which(input == "gen_api")] <- "genesis" + input[which(input == "gen_zensus_api")] <- "zensus" + input[which(input == "gen_regio_api")] <- "regio" + + return(input) + +} + +#------------------------------------------------------------------------------- +#' check_results +#' +#' @param input Input to test result structure +#' +check_results <- function(input){ + + if (length(input) > 1) { + + return(input) + + } else { + + input <- input[[1]] + return(input) + + } + +} + +#------------------------------------------------------------------------------- +#' find_token +#' +#' @param input Input to test result structure +#' @param error.input error.ignore TRUE or FALSE +#' @param text verbose TRUE or FALSE +#' @param sub_category sub_category character string +#' +find_token <- function(input, error.input, text, sub_category) { + + mes <- paste("No", sub_category, "found for the search term.") + + if (isTRUE(error.input)) { + + if (isTRUE(text)) { + + message(mes) + + } + + return(mes) + + } else { + + stop(mes) + + } + +} diff --git a/R/utils_httr2.R b/R/utils_httr2.R new file mode 100644 index 0000000..4e5929c --- /dev/null +++ b/R/utils_httr2.R @@ -0,0 +1,692 @@ +#------------------------------------------------------------------------------- +# Util functions related to API calls +#------------------------------------------------------------------------------- + +#' test_if_json +#' +#' @param input Response object +#' +test_if_json <- function(input) { + + if ((httr2::resp_content_type(input) == "application/json") && !is.na(httr2::resp_content_type(input))) { + + results_json <- httr2::resp_body_json(input) + + } else { + + stop("No json-csv file detected.", call. = FALSE) + + } + + return(results_json) + +} + +#------------------------------------------------------------------------------- +#' test_if_okay +#' +#' @param input Response object +#' +test_if_okay <- function(input) { + + results_json <- ifelse(input$`User-Agent` == "https://github.com/CorrelAid/restatis", + "Yes", + "No" + ) + + return(results_json) + +} +#------------------------------------------------------------------------------- + +#' test_if_error_find +#' +#' @param input Response object +#' @param para Parameter TRUE/FALSE +#' @param verbose Verbose TRUE/FALSE +#' +test_if_error_find <- function(input, para, verbose = NULL) { + + if (input$Status$Code != 0 && isTRUE(para) && input$Status$Code != 22) { + + stop(input$Status$Content) + + } else if (input$Status$Code != 0 && isFALSE(para) && input$Status$Code != 22) { + + if(!is.null(verbose) && isTRUE(verbose)) { + + message(input$Status$Content) + + message("Artificial token is used.") + + } + + empty_object <- FALSE + + } else { + + empty_object <- "DONE" + + } + + return(empty_object) + +} + +#------------------------------------------------------------------------------- + +#' test_if_error +#' +#' @param input Response object +#' @param para Parameter TRUE/FALSE +#' @param verbose Verbose TRUE/FALSE +#' +test_if_error <- function(input, para, verbose = NULL) { + + if (input$Status$Code == 104 && isFALSE(para)) { + + stop("No object found for your request. Check your parameters if you expected an object for this request.", + call. = FALSE) + + } else if (input$Status$Code != 0 && isFALSE(para) && input$Status$Code != 22) { + + stop(input$Status$Content, + call. = FALSE) + + } else if (input$Status$Code == 104 && isTRUE(para)) { + + if(!is.null(verbose) && isTRUE(verbose)){ + + message("No object found for your request. Check your parameters if you expected an object for this request. Artificial token is used.") + + } + + empty_object <- TRUE + + } else if (input$Status$Code != 0 && isTRUE(para) && input$Status$Code != 22) { + + if( !is.null(verbose) && isTRUE(verbose)){ + + message(input$Status$Content) + + message("Artificial token is used.") + + } + + empty_object <- FALSE + + } else { + + empty_object <- "DONE" + + } + + return(empty_object) + +} + +#------------------------------------------------------------------------------- + +#' test_if_error_variables +#' +#' @param input Response object +#' @param para Parameter TRUE/FALSE +#' +test_if_error_variables <- function(input, para) { + + if (input$Status$Code == 104) { + + empty_object <- TRUE + + } else if (input$Status$Code != 0 && input$Status$Code != 22) { + + empty_object <- FALSE + + } else { + + empty_object <- "DONE" + + } + + return(empty_object) + +} + +#------------------------------------------------------------------------------- + +#' test_if_process_further +#' +#' @param input Response object +#' @param para Parameter TRUE/FALSE +#' @param verbose Verbose TRUE/FALSE +#' +test_if_process_further <- function(input, para, verbose = NULL) { + + if (sum(unlist(lapply(input[4:8], function(x) { + + is.null(x) + + }))) == 5 && isFALSE(para)) { + + stop("No object found for your request. Check your parameters if you expected an object for this request.", + call. = FALSE) + + } else if (sum(unlist(lapply(input[4:8], function(x) { + + is.null(x) + + }))) == 5 && isTRUE(para)) { + + if(!is.null(verbose) && isTRUE(verbose)){ + + message("No object found for your request. Check your parameters if you expected an object for this request. Artificial token is used.") + + } + + empty_object <- TRUE + + } else { + + empty_object <- "DONE" + + } + + return(empty_object) + +} + +#------------------------------------------------------------------------------- + +#' test_if_error_light +#' +#' @param input Response object +#' @param verbose Verbose TRUE/FALSE +#' +test_if_error_light <- function(input, verbose = NULL) { + + if (input$Status$Code != 0 && !is.null(verbose) && isTRUE(verbose) && input$Status$Code != 22) { + + warning(input$Status$Content, + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' resp_check_data +#' +#' @param resp Response object +#' +resp_check_data <- function(resp) { + + if (!(httr2::resp_content_type(resp) %in% c("application/zip", "text/csv", "application/json"))) { + + stop("Encountered an invalid response type.", + call. = FALSE) + + } + + return <- httr2::resp_content_type(resp) + +} + +#------------------------------------------------------------------------------- + +#' return_table_object +#' +#' @param response Response object +#' @param response_type Response type +#' @param language Language locale +#' @param all_character Read all variables as character? +#' +return_table_object <- function(response, + response_type, + language, + all_character) { + + #----------------------------------------------------------------------------- + # Short parameter processing of 'all character' for later use in read_delim + + if (isTRUE(all_character)) { + + all_character <- expression(readr::cols(.default = readr::col_character())) + + } else if (isFALSE(all_character)) { + + all_character <- expression(readr::cols()) + + } else { + + stop("Misspecification of parameter 'all_character'. Has to be TRUE or FALSE.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + if (response_type == "application/json") { + + response_parsed <- httr2::resp_body_json(response) + + if (response_parsed$Status$Code == 98) { + + error_message <- paste0("You have requested a table too big for simple download. \n", + "Consider making a range of smaller requests or use the \n", + "option to create a job by setting the 'job' parameter \n", + "of 'gen_table()' to TRUE. You can then download the job \n", + "later (use the function 'gen_list_jobs()' to check its status).") + + stop(error_message, call. = FALSE) + + } else if (response_parsed$Status$Code == 99) { + + message <- paste0("You have requested successfully created a job with \n", + "your request. Use the function 'gen_list_jobs()' ", + "to check its status and download it once completed.") + + message(message) + + } else { + + stop("There has been an error with your request (not parseable response type 'application/json').\n Please try again later or contact the package maintainer.", + call. = FALSE) + + } + + #----------------------------------------------------------------------------- + + } else if (response_type == "text/csv"){ + + # There has to be a check on language to display correct decimal marks + # For German results, there needs to be a decimal mark set + + if (language == "de") { + + result <- response %>% + httr2::resp_body_string() %>% + readr::read_delim(delim = ";", + show_col_types = FALSE, + locale = readr::locale(decimal_mark = ",", + grouping_mark = "."), + name_repair = "minimal", + col_types = eval(all_character)) + + } else if (language == "en") { + + result <- response %>% + httr2::resp_body_string() %>% + readr::read_delim(delim = ";", + show_col_types = FALSE, + name_repair = "minimal", + col_types = eval(all_character)) + + } else { + + stop("Error handling language setting locale (values different from 'de' and 'en').", + call. = FALSE) + + } + + return(result) + + #----------------------------------------------------------------------------- + + # If the API response is a ZIP file, we need to temporarily save it + + } else if (response_type == "application/zip") { + + content <- httr2::resp_body_raw(response) + + temp_zip_path <- tempfile(fileext = ".zip") + + writeBin(content, + temp_zip_path) + + extract_dir <- tempdir() + + utils::unzip(temp_zip_path, + exdir = extract_dir) + + extracted_file <- list.files(extract_dir, + full.names = TRUE, + pattern = "_flat.csv") + + # We have to make sure there is only one flat csv to read in the tempdir + if (length(extracted_file) != 1) { + + stop("There are ambiguous file names (ending on '_flat.csv') in your temporary directory.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + # Parsing of the result + + if (language == "de") { + + result <- readr::read_delim(file = extracted_file, + delim = ";", + show_col_types = FALSE, + locale = readr::locale(decimal_mark = ",", + grouping_mark = "."), + name_repair = "minimal", + col_types = eval(all_character)) + + } else if (language == "en") { + + result <- readr::read_delim(file = extracted_file, + delim = ";", + show_col_types = FALSE, + name_repair = "minimal", + col_types = eval(all_character)) + + } else { + + stop("Error handling language setting locale (values different from 'de' and 'en').", + call. = FALSE) + + } + + # Remove temporarily created .csv file from temporary directory + file.remove(extracted_file) + + return(result) + + #----------------------------------------------------------------------------- + + } else { + + stop("Unknown API response type. Please refer to the package maintainers.", + call. = FALSE) + + } # End of check application/json, application/zip, text/csv + +} + +#------------------------------------------------------------------------------- + +#' logincheck_http_error +#' +#' @param database The user input to 'gen_logincheck' +#' @param verbose Boolean. Should the function message in case of success? +#' +#' @return Informative error/warning messages + invisibly TRUE/FALSE +#' +logincheck_http_error <- function(database, + verbose) { + + #----------------------------------------------------------------------------- + + if (length(database) == 1 && database != "all") { + + if (!(database %in% c("genesis", "zensus", "regio"))) { + + stop("Misspecified parameter 'database' (can only be 'all', 'genesis', 'zensus' or 'regio').", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if (database == "genesis") response <- gen_api("helloworld/logincheck") + if (database == "zensus") response <- gen_zensus_api("helloworld/logincheck") + if (database == "regio") response <- gen_regio_api("helloworld/logincheck") + + logincheck_stop_or_warn(response = response, + error = TRUE, + verbose = verbose, + database = database) + + #----------------------------------------------------------------------------- + + } else if (length(database) == 1 && database == "all") { + + databases <- list("genesis", "zensus", "regio") + + response_list <- list(response_genesis = gen_api("helloworld/logincheck"), + response_zensus = gen_zensus_api("helloworld/logincheck"), + response_regio = gen_regio_api("helloworld/logincheck")) + + purrr::walk2(.x = response_list, + .y = databases, + .f = ~ logincheck_stop_or_warn(response = .x, + database = .y, + error = FALSE, + verbose = verbose)) + + #----------------------------------------------------------------------------- + + } else if (length(database) > 1 & !("all" %in% database)) { + + if (!(all(database %in% c("genesis", "zensus", "regio")))) { + + stop("You can only specify 'all', 'genesis', 'zensus' or 'regio' inside of the parameter 'database'.", + call. = FALSE) + + } + + #--------------------------------------------------------------------------- + + if ("genesis" %in% database) { + + logincheck_stop_or_warn(response = gen_api("helloworld/logincheck"), + error = FALSE, + verbose = verbose, + database = "genesis") + + } + + #--------------------------------------------------------------------------- + + if ("zensus" %in% database) { + + logincheck_stop_or_warn(response = gen_zensus_api("helloworld/logincheck"), + error = FALSE, + verbose = verbose, + database = "zensus") + + } + + #--------------------------------------------------------------------------- + + if ("regio" %in% database) { + + logincheck_stop_or_warn(response = gen_regio_api("helloworld/logincheck"), + error = FALSE, + verbose = verbose, + database = "regio") + + } + + #----------------------------------------------------------------------------- + + } else { + + stop("If you want to specify 'all', do not specify further databases (i.e., just set database to 'all').", + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' logincheck_stop_or_warn +#' +#' @param response A HTTP response object +#' @param error Boolean. Should the function warn or throw an error? +#' @param verbose Boolean. Should the function message in case of success? +#' @param database The database that the check should be run for +#' +#' @return In case of failure warns or errors. Invisibly returns TRUE (success) or FALSE (failure) +#' +logincheck_stop_or_warn <- function(response, + error, + verbose, + database) { + + #----------------------------------------------------------------------------- + + request_failed <- grepl("Ein Fehler ist aufgetreten", httr2::resp_body_json(response)$Status) + + if (isTRUE(request_failed) & isTRUE(error)) { + + stop(paste0("Database: '", + database, + "': There seems to be an issue with the authentication process (logincheck upon credential specification failed). \n", + "Please retry specifying your credentials."), + call. = FALSE) + + invisible(FALSE) + + #----------------------------------------------------------------------------- + + } else if (isTRUE(request_failed) & isFALSE(error)) { + + warning(paste0("Database: '", + database, + "': There seems to be an issue with the authentication process (logincheck upon credential specification failed). \n", + "Please retry specifying your credentials."), + call. = FALSE) + + invisible(FALSE) + + #----------------------------------------------------------------------------- + + } else if (isFALSE(request_failed)) { + + if (isTRUE(verbose)) { + + message(paste0("Login check for database '", database, "' succeeded.")) + + } + + invisible(TRUE) + + #----------------------------------------------------------------------------- + + } else { + + stop("Checking the HTTP response failed.", + call. = FALSE) + + } + +} + +#------------------------------------------------------------------------------- + +#' insert_and_save_credentials +#' +#' @param database The database to specify credentials for +#' +insert_and_save_credentials <- function(database) { + + if (database %in% c("genesis", "regio")) { + + username <- gen_auth_ask("username") + password <- gen_auth_ask("password") + + auth_path <- gen_auth_path(paste0("auth_", database, ".rds")) + + key <- httr2::secret_make_key() + + key_name <- paste0(toupper(database), "_KEY") + + do.call("Sys.setenv", setNames(list(key), key_name)) + + message(paste0("Saving '", database, "' database credentials to "), + auth_path, + "\n\n", + "Please add the following line to your .Renviron, ", + "e.g. via `usethis::edit_r_environ()`, ", + "to use the specified username and password across sessions:\n\n", + paste0(key_name, "="), + key, + "\n\n") + + dir.create(gen_auth_path(), showWarnings = FALSE, recursive = TRUE) + + httr2::secret_write_rds(list(username = username, + password = password), + path = auth_path, + key = key_name) + + #----------------------------------------------------------------------------- + + } else if (database == "zensus") { + + want_token_resp <- menu(choices = c("Zensus 2022 API token", + "mail address + password"), + graphics = FALSE, + title = "Do you want to specifiy a Zensus 2022 API token or regular credentials for access?") + + want_token <- ifelse(want_token_resp == 1L, TRUE, FALSE) + + if (isTRUE(want_token)) { + + username <- gen_auth_ask("API token") + password <- "" + + auth_path <- gen_auth_path("auth_zensus.rds") + + key <- httr2::secret_make_key() + + Sys.setenv(ZENSUS_KEY = key) + + message("Saving Zensus 2022 database credentials to ", + auth_path, + "\n\n", + "Please add the following line to your .Renviron, ", + "e.g. via `usethis::edit_r_environ()`, ", + "to use the specified username and password across sessions:\n\n", + "ZENSUS_KEY=", + key, + "\n\n") + + dir.create(gen_auth_path(), showWarnings = FALSE, recursive = TRUE) + + httr2::secret_write_rds(list(username = username, + password = password), + path = auth_path, + key = "ZENSUS_KEY") + + } else { + + username <- gen_auth_ask("username") + password <- gen_auth_ask("password") + + auth_path <- gen_auth_path("auth_zensus.rds") + + key <- httr2::secret_make_key() + + Sys.setenv(ZENSUS_KEY = key) + + message("Saving Zensus 2022 database credentials to ", + auth_path, + "\n\n", + "Please add the following line to your .Renviron, ", + "e.g. via `usethis::edit_r_environ()`, ", + "to use the specified username and password across sessions:\n\n", + "ZENSUS_KEY=", + key, + "\n\n") + + dir.create(gen_auth_path(), showWarnings = FALSE, recursive = TRUE) + + httr2::secret_write_rds(list(username = username, password = password), + path = auth_path, + key = "ZENSUS_KEY") + + } + + } else { + + stop("Misspecification of parameter 'database' in function 'insert_and_save_credentials'.", + call. = FALSE) + + } + +} diff --git a/R/zzz.R b/R/zzz.R index 5564489..0526d54 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -1,5 +1,9 @@ .onLoad <- function(libname, pkgname) { + gen_api <<- memoise::memoise(gen_api) + gen_zensus_api <<- memoise::memoise(gen_zensus_api) + gen_regio_api <<- memoise::memoise(gen_regio_api) if (!nzchar(Sys.getenv("GENESIS_LANG"))) Sys.setenv(GENESIS_LANG = "en") + } diff --git a/data/evas_list.rda b/data/evas_list.rda new file mode 100644 index 0000000..33309f7 Binary files /dev/null and b/data/evas_list.rda differ diff --git a/data/evas_list_long_20220724.rda b/data/evas_list_long_20220724.rda deleted file mode 100644 index d0bd341..0000000 Binary files a/data/evas_list_long_20220724.rda and /dev/null differ diff --git a/man/binding_lapply.Rd b/man/binding_lapply.Rd new file mode 100644 index 0000000..667f010 --- /dev/null +++ b/man/binding_lapply.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{binding_lapply} +\alias{binding_lapply} +\title{binding_lapply} +\usage{ +binding_lapply(x, characteristics) +} +\arguments{ +\item{x}{Element to bind} + +\item{characteristics}{Characteristics to filter for} +} +\description{ +binding_lapply +} diff --git a/man/check_function_input.Rd b/man/check_function_input.Rd new file mode 100644 index 0000000..02cbae6 --- /dev/null +++ b/man/check_function_input.Rd @@ -0,0 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{check_function_input} +\alias{check_function_input} +\title{check_function_input} +\usage{ +check_function_input( + code = NULL, + term = NULL, + sortcriterion = NULL, + category = NULL, + detailed = NULL, + type = NULL, + date = NULL, + similarity = NULL, + error.ignore = NULL, + ordering = NULL, + database = NULL, + area = NULL, + caller = NULL, + verbose = NULL, + raw = NULL +) +} +\arguments{ +\item{code}{Parameter to be checked} + +\item{term}{Parameter to be checked} + +\item{sortcriterion}{Parameter to be checked} + +\item{category}{Parameter to be checked} + +\item{detailed}{Parameter to be checked} + +\item{type}{Parameter to be checked} + +\item{date}{Parameter to be checked} + +\item{similarity}{Parameter to be checked} + +\item{error.ignore}{Parameter to be checked} + +\item{ordering}{Parameter to be checked} + +\item{database}{Parameter to be checked} + +\item{area}{Parameter to be checked} + +\item{caller}{Parameter to be checked} + +\item{verbose}{Parameter to be checked} + +\item{raw}{Parameter to be checked} +} +\description{ +check_function_input +} diff --git a/man/check_results.Rd b/man/check_results.Rd new file mode 100644 index 0000000..a101ad7 --- /dev/null +++ b/man/check_results.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{check_results} +\alias{check_results} +\title{check_results} +\usage{ +check_results(input) +} +\arguments{ +\item{input}{Input to test result structure} +} +\description{ +check_results +} diff --git a/man/evas_list_long_20220724.Rd b/man/evas_list.Rd similarity index 70% rename from man/evas_list_long_20220724.Rd rename to man/evas_list.Rd index b41de3e..884d1cb 100644 --- a/man/evas_list_long_20220724.Rd +++ b/man/evas_list.Rd @@ -1,18 +1,17 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/data.R \docType{data} -\name{evas_list_long_20220724} -\alias{evas_list_long_20220724} +\name{evas_list} +\alias{evas_list} \title{List of EVAS codes} \format{ -\subsection{\code{evas_list_long_20220724}}{ +\subsection{\code{evas_list}}{ -A data frame with 1,097 rows and 3 columns: +A data frame with 1132 rows and 3 columns: \describe{ \item{EVAS}{EVAS code} \item{Beschreibung}{Details on the EVAS code} \item{Titel}{Alternative desription of EVAS code contents} -... } } } @@ -20,7 +19,7 @@ A data frame with 1,097 rows and 3 columns: \url{https://www.destatis.de/DE/Methoden/Revisionen/Glossar/EVAS.html} } \usage{ -evas_list_long_20220724 +evas_list } \description{ List of EVAS codes diff --git a/man/find_token.Rd b/man/find_token.Rd new file mode 100644 index 0000000..b83c33f --- /dev/null +++ b/man/find_token.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{find_token} +\alias{find_token} +\title{find_token} +\usage{ +find_token(input, error.input, text, sub_category) +} +\arguments{ +\item{input}{Input to test result structure} + +\item{error.input}{error.ignore TRUE or FALSE} + +\item{text}{verbose TRUE or FALSE} + +\item{sub_category}{sub_category character string} +} +\description{ +find_token +} diff --git a/man/forming_evas.Rd b/man/forming_evas.Rd new file mode 100644 index 0000000..9e4f19a --- /dev/null +++ b/man/forming_evas.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{forming_evas} +\alias{forming_evas} +\title{forming_evas} +\usage{ +forming_evas(list_of) +} +\arguments{ +\item{list_of}{List of EVAS to iterate over} +} +\description{ +forming_evas +} diff --git a/man/gen_alternative_terms.Rd b/man/gen_alternative_terms.Rd index 35f01be..9585f92 100644 --- a/man/gen_alternative_terms.Rd +++ b/man/gen_alternative_terms.Rd @@ -2,31 +2,44 @@ % Please edit documentation in R/gen_alternative_terms.R \name{gen_alternative_terms} \alias{gen_alternative_terms} -\title{gen_alternative_terms: Call For Similiar or Spelling Related Terms for Further Search} +\title{gen_alternative_terms} \usage{ -gen_alternative_terms(term = NULL, similarity = TRUE, ...) +gen_alternative_terms( + term = NULL, + similarity = TRUE, + database = c("all", "genesis", "zensus", "regio"), + verbose = TRUE, + ... +) } \arguments{ \item{term}{Character string. Maximum length of 15 characters. Term or word for which you are searching for alternative or related terms. Use of '*' as a placeholder is possible to generate broader search areas.} -\item{similarity}{Logical. Indicator if the output of the function should be sorted based on a Levenshtein edit distance based on the \code{adist()} function.} +\item{similarity}{Boolean. Indicator if the output of the function should be sorted based on a Levenshtein edit distance based on the \code{adist()} function. Default is 'TRUE'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Attributes are added to the data.frame, describing the search configuration for the returned output. +A list with all recollected elements from the respective database. Attributes are added to the data.frame, describing the search configuration for the returned output. } \description{ -Function to find search terms that are similar or related to one another and also represented in Genesis. +Function to find search terms that are similar or related to one another in spelling and also represented in the GENESIS, Zensus 2022 or regionalstatistik.de databases. Important note: The API call is searching for terms with the same characters. To be useful in searching for related terms it is highly recommended to work with "*" placeholders (see examples). The placeholder can be placed before and/or after the search term. } \examples{ \dontrun{ -# Find terms that are similar (in spelling) to search term "bus" +# Find terms at GENESIS that are the same (in spelling) to search term "bus" # and sort them by Levenshtein edit distance -object <- gen_alternative_terms(term = "bus", similarity = TRUE) +object <- gen_alternative_terms(term = "bus", similarity = TRUE, database = "genesis") + +# Find terms at GENESIS that are related (in spelling) to search term "bus" +object <- gen_alternative_terms(term = "bus*", similarity = TRUE, database = "genesis") -# Find terms that are related (in spelling) to search term "bus" -object <- gen_alternative_terms(term = "bus*", similarity = TRUE) +# Find terms at Zensus 2022 that are related (in spelling) to search term "wohn" +object <- gen_alternative_terms(term = "wohn*", similarity = TRUE, database = "zensus") } } diff --git a/man/gen_auth_ask.Rd b/man/gen_auth_ask.Rd new file mode 100644 index 0000000..35c41d0 --- /dev/null +++ b/man/gen_auth_ask.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_auth.R +\name{gen_auth_ask} +\alias{gen_auth_ask} +\title{gen_auth_ask} +\usage{ +gen_auth_ask(credential_type) +} +\arguments{ +\item{credential_type}{Character string. Type of credential to ask for} +} +\value{ +The user response +} +\description{ +gen_auth_ask +} diff --git a/man/gen_auth_get.Rd b/man/gen_auth_get.Rd new file mode 100644 index 0000000..3831c5f --- /dev/null +++ b/man/gen_auth_get.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_auth.R +\name{gen_auth_get} +\alias{gen_auth_get} +\title{gen_auth_get} +\usage{ +gen_auth_get(database = c("all", "genesis", "zensus", "regio")) +} +\arguments{ +\item{database}{Character string. The database to get the credentials for ('all', 'genesis', 'zensus' and 'regio').} +} +\value{ +Credentials for the database(s) chosen by the user +} +\description{ +Function to retrieve the credentials stored via \code{gen_auth_save()} +} +\examples{ +\dontrun{ +gen_auth_get("all") +} + + +} diff --git a/man/gen_auth_path.Rd b/man/gen_auth_path.Rd new file mode 100644 index 0000000..2c16c8f --- /dev/null +++ b/man/gen_auth_path.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_auth.R +\name{gen_auth_path} +\alias{gen_auth_path} +\title{gen_auth_path} +\usage{ +gen_auth_path(...) +} +\arguments{ +\item{...}{Optional arguments for file.path()} +} +\value{ +A file path for the storage of config files +} +\description{ +gen_auth_path +} diff --git a/man/gen_auth_save.Rd b/man/gen_auth_save.Rd index e8ce643..5cb642d 100644 --- a/man/gen_auth_save.Rd +++ b/man/gen_auth_save.Rd @@ -2,22 +2,29 @@ % Please edit documentation in R/gen_auth.R \name{gen_auth_save} \alias{gen_auth_save} -\title{Save authentication} +\title{gen_auth_save} \usage{ -gen_auth_save() +gen_auth_save(database = c("all", "genesis", "zensus", "regio")) +} +\arguments{ +\item{database}{Character string. The database to store credentials for ('all', 'genesis', 'zensus' or 'regio').} } \description{ -See Details. +Save credentials of the different databases for further convenient use } \details{ -Genesis username and password are encrypted and saved as RDS in the -package config directory. +Username and password are encrypted and saved as RDS in the +package config directory. A random string is generated and stored in the +session environment variable \code{GENESIS_KEY}. This string is used as the key +to encrypt and decrypt the entered credentials. To avoid havding to save +authentication in future sessions, \code{GENESIS_KEY} can be added to .Renviron. +The usethis package includes a helper function for editing .Renviron files +from an R session with \code{\link[usethis:edit]{usethis::edit_r_environ()}}. +} +\examples{ +\dontrun{ +gen_auth_save("zensus") +} -A random string is generated and stored in the session environment -variable \code{RESTATIS_KEY}. This string is used as the key to encrypt and -decrypt the entered Genesis credentials. -To avoid having to save authentication in future sessions, \code{RESTATIS_KEY} can -be added to .Renviron. The usethis package includes a helper function for -editing .Renviron files from an R session with \code{\link[usethis:edit]{usethis::edit_r_environ()}}. } diff --git a/man/gen_catalogue.Rd b/man/gen_catalogue.Rd index 4435194..fd8e0d3 100644 --- a/man/gen_catalogue.Rd +++ b/man/gen_catalogue.Rd @@ -2,37 +2,49 @@ % Please edit documentation in R/gen_catalogue.R \name{gen_catalogue} \alias{gen_catalogue} -\title{catalogue: Explore Different Objects and Their Structural Embedding in Genesis} +\title{gen_catalogue} \usage{ gen_catalogue( code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "statistics", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 10 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possible.} +\item{code}{String with a maximum length of 15 characters for a database object (GENESIS and regionalstatistik.de) and 15 characters for a Zensus 2022 object. Only one code per iteration. "*" notations are possible.} -\item{category}{a string. Specific Genesis-Object-types: 'tables', 'statistics', and 'cubes'. All three together are possible.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{detailed}{a logical. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title.} +\item{category}{Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} + +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis API. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to enable searching for tables, statistics, and cubes from Genesis. Additionally, it structures the output based on the internal tree structure of Genesis itself based on the EVAS-numbers. Time-series are represented as cubes with a specified time span. +Function to search for tables, statistics, and cubes from GENESIS, Zensus 2022 or regionalstatistik.de. Additionally, it structures the output based on the internal tree structure based on the EVAS-numbers. Time-series are represented as cubes with a specified time span. Important note: To be useful in searching for objects it is highly recommended to work with "*" placeholders (see examples). The placeholder can be placed before and/or after the search term. } \examples{ \dontrun{ -# Scroll through Objects under the topic "12*" -# which is "Bevölkerung" in Destatis from all categories and +# Scroll through objects under the topic "12*" +# which is "Bevoelkerung" in GENESIS from all categories and # with a detailed output object <- gen_catalogue(code = "12*", detailed = T) diff --git a/man/gen_cube.Rd b/man/gen_cube.Rd index 85a8314..d97b2b4 100644 --- a/man/gen_cube.Rd +++ b/man/gen_cube.Rd @@ -7,43 +7,44 @@ gen_cube(name, ...) } \arguments{ -\item{name}{Name of the data cube} +\item{name}{Character string for a cube object (only GENESIS and regionalstatistik.de)} -\item{...}{Optional parameters passed on to the Genesis API call: +\item{...}{Further (optional) parameters passed on to the API call: \describe{ -\item{\code{area}}{a string. The area in which the table is stored. Possible values: +\item{\code{area}}{Character string. The area in which the table is stored. Possible values: \itemize{ \item \code{"public"}: cube in the public catalogue \item \code{"user"}: cube in the user's account +\item \code{"all"}: both of the above }} -\item{\code{values}}{a logical. Should values be included?} -\item{\code{metadata}}{a logical. Should metadata be included?} -\item{\code{additionals}}{a logical. Should additional metadata be included?} -\item{\code{contents}}{a string. Names of required statistical specifications} -\item{\code{startyear,endyear}}{a number. Only retrieve data between these years.} -\item{\code{timeslices}}{a number. Number of timeslices (cumulative to startyear or endyear)} -\item{\code{regionalvariable}}{character. Code of the regional variable +\item{\code{values}}{Boolean. Should values be included?} +\item{\code{metadata}}{Boolean. Should metadata be included?} +\item{\code{additionals}}{Boolean. Should additional metadata be included?} +\item{\code{contents}}{Character string. Names of required statistical specifications} +\item{\code{startyear,endyear}}{Four-digit integers. Only retrieve data between these years.} +\item{\code{timeslices}}{Integer. Number of timeslices (cumulative to startyear or endyear)} +\item{\code{regionalvariable}}{Character string. Code of the regional variable whose value is specified in \code{regionalkey} to filter the results.} -\item{\code{regionalkey}}{character. One or more regional keys. Multiple +\item{\code{regionalkey}}{Character string. One or more regional keys. Multiple values can be supplied as a character vector or as a single string, with the regional keys separated by commas. Use of wildcard (\code{*}) allowed.} \item{\code{classifyingvariable1,classifyingvariable2 - ,classifyingvariable3}}{character. Code of the subject classification + ,classifyingvariable3}}{Character string. Code of the subject classification (SK-Merkmal) to which the selection by means of the corresponding \code{classifyingkey} parameter is to be applied.} -\item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{character. +\item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{Character string. One or more values of a subject classification (e.g. "WZ93012"). Applied to the corresponding \code{classifyingvariable} parameter. Multiple keys can be supplied as a character vector or as a single string, with the keys separated by commas. Use of wildcard (\code{*}) allowed.} -\item{\code{stand}}{a string \code{"DD.MM.YYYY"}. Only retrieve data -updated after this #' date.} -\item{\code{language}}{Search terms, returned messages and data +\item{\code{stand}}{Character string, format: \code{"DD.MM.YYYY"}. Only retrieve data +updated after this date.} +\item{\code{language}}{Character string. Search terms, returned messages and data descriptions in German (\code{"de"}) or English (\code{"en"})?} }} } \description{ -Download a cube with data from Genesis +Download a cube with data from GENESIS or regionalstatistik.de database } \examples{ \dontrun{ diff --git a/man/gen_download_job.Rd b/man/gen_download_job.Rd new file mode 100644 index 0000000..b41f715 --- /dev/null +++ b/man/gen_download_job.Rd @@ -0,0 +1,40 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_jobs.R +\name{gen_download_job} +\alias{gen_download_job} +\title{gen_download_job} +\usage{ +gen_download_job( + name, + database = c("genesis", "regio"), + area = c("all", "public", "user"), + compress = FALSE, + language = Sys.getenv("GENESIS_LANG"), + all_character = TRUE +) +} +\arguments{ +\item{name}{Character string. The job code retrieved by using gen_list_jobs().} + +\item{database}{Character string. Indicator if the GENESIS ('genesis') or regionalstatistik.de ('regio') database is called. Only one database can be addressed per function call. Default option is 'genesis'.} + +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'.} + +\item{compress}{Boolean. Should empty rows and columns be discarded? Default is FALSE.} + +\item{language}{Character string. Defines if the decimal mark and grouping mark of integers should be represented based on the European (e.g.: '100,5', '200.000,5') or American ('100.5', '200,000.5') system. Defaults to 'Sys.getenv("GENESIS_LANG")'.} + +\item{all_character}{Boolean. Should all variables be imported as 'character' variables? Avoids fuzzy data type conversions if there are leading zeros or other special characters. Defaults to TRUE.} +} +\value{ +Returns a data.frame with the table content +} +\description{ +gen_download_job +} +\examples{ +\dontrun{ +gen_download_job("21311-00-01-1_123456789", "regio") +} + +} diff --git a/man/gen_find.Rd b/man/gen_find.Rd index ca156f1..7fbbd1f 100644 --- a/man/gen_find.Rd +++ b/man/gen_find.Rd @@ -6,46 +6,52 @@ \usage{ gen_find( term = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("all", "tables", "statistics", "variables", "cubes"), detailed = FALSE, ordering = TRUE, - error.ignore = FALSE, + error.ignore = TRUE, + verbose = TRUE, ... ) } \arguments{ -\item{term}{A string with no maximum character length, but a word limit of five words.} +\item{term}{A character string with no maximum character length, but a word limit of five words.} -\item{category}{A string. Specific object types: 'tables', 'statistics', 'variables', and 'cubes'. Using all together is possible. Default option are 'all' objects.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{detailed}{A logical. Indicator if the function should return the detailed output of the iteration including all object related information or only a shortened output including only code and object title. Default Option is FALSE.} +\item{category}{Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database.} -\item{ordering}{A logical. Indicator if the function should return the output of the iteration ordered first based on the fact if the searched term is appearing in the title of the object and secondly on an estimator of the number of variables in this object. Default option is TRUE.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} -\item{error.ignore}{A logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce an artificial response (e.g., for complex processes not to fail).} +\item{ordering}{A logical. Indicator if the function should return the output of the iteration ordered first based on the fact if the searched term is appearing in the title of the object and secondly on an estimator of the number of variables in this object. Default option is 'TRUE'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all elements retrieved from Genesis. Attributes are added to the data.frame describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to search through Genesis. It is similar in usage as the search function on the Destatis main page (https://www.destatis.de/DE/Home/_inhalt.html). -In the search query, "UND" (german word for: and; can also be written "und" or "&") as well as "ODER" (german word for: or; can also be written "oder" or "|") can be included and logically combined. Furthermore, wildcards are possible by including "*". If more then one word is included in the term-string, automatically "and" is used to combine the different words. -Important note: Time-series are treated as cubes, they are not longer distinguished. If you want to find a specific object with a clear code with this find function, you need to specify the object type or search for all object types. +Function to search through the databases GENESIS, Zensus 2022 and regionalstatistik.de. It is similar in usage as the search function on the GENESIS main page (https://www-genesis.destatis.de/genesis/online). +In the search query, "UND" (German word for 'and', also written "und" or "&") as well as "ODER" (German word for 'or', also written "oder" or "|") can be included and logically combined. Furthermore, wildcards are possible by including "*". If more then one word is included in the term string, 'and' is used automatically to combine the different words. +Important note: Time-series are treated as cubes in GENESIS and regionalstatistik.de, they are not longer distinguished. If you want to find a specific object with a clear code with this find function, you need to specify the object type or search for all object types. } \examples{ \dontrun{ -# Find objects related to "bus" in Genesis +# Find objects related to "bus" in GENESIS object <- gen_find(term = "bus") -# Find tables related to "bus" in Genesis and return a unordered detailed output +# Find tables related to "bus" in GENESIS and return a unordered detailed output object <- gen_find(term = "bus", detailed = TRUE, ordering = FALSE) -# Find tables related to "Autos" or "Corona" in Genesis and return a unordered detailed output +# Find tables related to "Autos" or "Corona" in GENESIS and return a unordered detailed output object <- gen_find(term = "autos ODER corona", detailed = TRUE, ordering = FALSE) -#' # Find tables related to "Autos" and "Corona" in Genesis and return a unordered detailed output +#' # Find tables related to "Autos" and "Corona" in GENESIS and return a unordered detailed output object <- gen_find(term = "autos UND corona", detailed = TRUE, ordering = FALSE) } diff --git a/man/gen_list_jobs.Rd b/man/gen_list_jobs.Rd index 5dcd876..6899f90 100644 --- a/man/gen_list_jobs.Rd +++ b/man/gen_list_jobs.Rd @@ -1,25 +1,34 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_list_jobs.R +% Please edit documentation in R/gen_jobs.R \name{gen_list_jobs} \alias{gen_list_jobs} -\title{gen_list_jobs: Explore current jobs of your user account} +\title{gen_list_jobs} \usage{ gen_list_jobs( - selection = NULL, - sortcriterion = c("content", "time", "status"), + database = c("genesis", "regio"), + sortcriterion = c("type", "time", "status", "code"), + flat = FALSE, ... ) } \arguments{ -\item{selection}{Filter the list of jobs for matching codes.} +\item{database}{Character string. Indicator if 'genesis' or 'regionalstatistik.de' database is called. Default option is 'genesis'.} -\item{sortcriterion}{Allows to sort the resulting list of jobs by their Code ("content"), the time of completion ("time") or status ("status")} +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'type','time','status' or 'code'. This is a parameter of the API call itself. The default is 'type'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{flat}{Boolean. Should the function return a list with jobs and metadata ('FALSE') or just a flat data.frame ('TRUE')? Defaults to FALSE.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list of all current jobs connected to the given user. +A list or data.frame (see parameter 'flat') of all current jobs of the user. } \description{ -Function to list all current jobs connected to the given user. +Function to list all current jobs connected to the given user in the GENESIS or regionalstatistik.de database. Important note: For this function it is also possible to use \code{searchcriterion} parameter and \code{selection} parameter, making it possible to filter the job list based on 'type','time','status' or 'code'. For more details see \code{vignette("additional_parameter")}. +} +\examples{ +\dontrun{ +gen_list_jobs("regio", flat = TRUE) +} + } diff --git a/man/gen_logincheck.Rd b/man/gen_logincheck.Rd new file mode 100644 index 0000000..cc93b1d --- /dev/null +++ b/man/gen_logincheck.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_logincheck.R +\name{gen_logincheck} +\alias{gen_logincheck} +\title{gen_logincheck} +\usage{ +gen_logincheck(database, verbose = FALSE) +} +\arguments{ +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Only one database can be addressed per function call. Default option is 'genesis'.} + +\item{verbose}{Boolean. In case of success, should a message be printed? Defaults to FALSE.} +} +\value{ +Leads to an informative error message if the login check failed and returns FALSE invisibly. Invisibly returns TRUE otherwise. +} +\description{ +Function to check if a login is possible for a certain database. +} +\examples{ +\dontrun{ +gen_logincheck("zensus") +} + +} diff --git a/man/gen_metadata.Rd b/man/gen_metadata.Rd index e530e38..7d546cb 100644 --- a/man/gen_metadata.Rd +++ b/man/gen_metadata.Rd @@ -1,27 +1,39 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R +% Please edit documentation in R/gen_metadata.R \name{gen_metadata} \alias{gen_metadata} \title{gen_metadata} \usage{ gen_metadata( code = NULL, - category = c("Cube", "Statistic", "Table", "Variable", "Value"), + database = c("all", "genesis", "zensus", "regio"), + category = c("cube", "statistic", "table", "variable", "value"), + area = c("all", "public", "user"), error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, ... ) } \arguments{ -\item{code}{string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} +\item{code}{String with a maximum length of 15 characters for a database object (GENESIS, regionalstatistik.de, Zensus 2022). Only one code per iteration.} -\item{category}{a string. Specific object-types: 'Cube', 'Statistic', "Table", "Variable" and 'Value'. The function needs a specified object type.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{category}{Character string. Specifying the specific object type of the object that you want meta data for. No default option - you need to specify the object type. Hint: The functions in 'restatis' often return information on object 'Type'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ Search For Meta-Information For All Types Of Objects @@ -29,7 +41,7 @@ Search For Meta-Information For All Types Of Objects \examples{ \dontrun{ # Find meta-information of the table with the code "11111" -object <- gen_metadata(code = "11111", category = "Table") +object <- gen_metadata(code = "11111", category = "table") } } diff --git a/man/gen_metadata_cube.Rd b/man/gen_metadata_cube.Rd index 9c45f9a..dd3a81c 100644 --- a/man/gen_metadata_cube.Rd +++ b/man/gen_metadata_cube.Rd @@ -1,23 +1,39 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R +% Please edit documentation in R/gen_metadata.R \name{gen_metadata_cube} \alias{gen_metadata_cube} \title{gen_metadata_cube} \usage{ -gen_metadata_cube(code = NULL, error.ignore = FALSE, ...) +gen_metadata_cube( + code = NULL, + database = c("all", "genesis", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ... +) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS or regionalstatistik.de object. Only one code per iteration.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{database}{Character string. Indicator if the GENESIS ('genesis') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to search for meta-information for a specific cube. +Function to search for meta information for a specific cube. Usable only for GENESIS and regionalstatistik.de. } \examples{ \dontrun{ diff --git a/man/gen_metadata_statistic.Rd b/man/gen_metadata_statistic.Rd new file mode 100644 index 0000000..442d80e --- /dev/null +++ b/man/gen_metadata_statistic.Rd @@ -0,0 +1,44 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_metadata.R +\name{gen_metadata_statistic} +\alias{gen_metadata_statistic} +\title{gen_metadata_statistic} +\usage{ +gen_metadata_statistic( + code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ... +) +} +\arguments{ +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} + +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +} +\value{ +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +} +\description{ +Function to search for meta information for a specific statistic. +} +\examples{ +\dontrun{ +# Find meta-information of the statistic with the code "12411" +object <- gen_metadata_stats(code = "12411") +} + +} diff --git a/man/gen_metadata_stats.Rd b/man/gen_metadata_stats.Rd deleted file mode 100644 index f3448d7..0000000 --- a/man/gen_metadata_stats.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R -\name{gen_metadata_stats} -\alias{gen_metadata_stats} -\title{gen_metadata_stat} -\usage{ -gen_metadata_stats(code = NULL, error.ignore = FALSE, ...) -} -\arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} - -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} - -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} -} -\value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -} -\description{ -Function to search for meta-information for a specific statistic. -} -\examples{ -\dontrun{ -# Find meta-information of the statistic with the code "12411" -object <- gen_metadata_stats(code = "12411") -} - -} diff --git a/man/gen_metadata_tab.Rd b/man/gen_metadata_tab.Rd deleted file mode 100644 index 872ddc6..0000000 --- a/man/gen_metadata_tab.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R -\name{gen_metadata_tab} -\alias{gen_metadata_tab} -\title{gen_metadata_tab} -\usage{ -gen_metadata_tab(code = NULL, error.ignore = FALSE, ...) -} -\arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} - -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} - -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} -} -\value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -} -\description{ -Function to search for meta-information for a specific table. -} -\examples{ -\dontrun{ -# Find meta-information of the table with the code "11111" -object <- gen_metadata_tab(code = "11111") -} - -} diff --git a/man/gen_metadata_table.Rd b/man/gen_metadata_table.Rd new file mode 100644 index 0000000..8c4ef0f --- /dev/null +++ b/man/gen_metadata_table.Rd @@ -0,0 +1,44 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_metadata.R +\name{gen_metadata_table} +\alias{gen_metadata_table} +\title{gen_metadata_table} +\usage{ +gen_metadata_table( + code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ... +) +} +\arguments{ +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} + +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +} +\value{ +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +} +\description{ +Function to search for meta information for a specific table. +} +\examples{ +\dontrun{ +# Find meta-information of the table with the code "11111" +object <- gen_metadata_tab(code = "11111") +} + +} diff --git a/man/gen_metadata_val.Rd b/man/gen_metadata_val.Rd deleted file mode 100644 index e81bb3e..0000000 --- a/man/gen_metadata_val.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R -\name{gen_metadata_val} -\alias{gen_metadata_val} -\title{gen_metadata_val} -\usage{ -gen_metadata_val(code = NULL, error.ignore = FALSE, ...) -} -\arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} - -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} - -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} -} -\value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -} -\description{ -Function to search for meta-information for a specific value. -} -\examples{ -\dontrun{ -# Find meta-information of the value with the code "LEDIG" -object <- gen_metadata_val(code = "LEDIG") -} - -} diff --git a/man/gen_metadata_value.Rd b/man/gen_metadata_value.Rd new file mode 100644 index 0000000..bfc591f --- /dev/null +++ b/man/gen_metadata_value.Rd @@ -0,0 +1,44 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_metadata.R +\name{gen_metadata_value} +\alias{gen_metadata_value} +\title{gen_metadata_value} +\usage{ +gen_metadata_value( + code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ... +) +} +\arguments{ +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} + +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +} +\value{ +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +} +\description{ +Function to search for meta information for a specific value. +} +\examples{ +\dontrun{ +# Find meta-information of the value with the code "LEDIG" +object <- gen_metadata_val(code = "LEDIG") +} + +} diff --git a/man/gen_metadata_var.Rd b/man/gen_metadata_var.Rd deleted file mode 100644 index 4a301c2..0000000 --- a/man/gen_metadata_var.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gen_meta_data.R -\name{gen_metadata_var} -\alias{gen_metadata_var} -\title{gen_metadata_var} -\usage{ -gen_metadata_var(code = NULL, error.ignore = FALSE, ...) -} -\arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notation is possible.} - -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} - -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} -} -\value{ -A list with all recalled elements from Genesis. Attributes are added to the dataframe describing the search configuration for the returned output. -} -\description{ -Function to search for meta-information for a specific variable. -} -\examples{ -\dontrun{ -# Find meta-information of the variable with the code "FAMSTD" -object <- gen_metadata_var(code = "FAMSTD") -} - -} diff --git a/man/gen_metadata_variable.Rd b/man/gen_metadata_variable.Rd new file mode 100644 index 0000000..2870d76 --- /dev/null +++ b/man/gen_metadata_variable.Rd @@ -0,0 +1,44 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_metadata.R +\name{gen_metadata_variable} +\alias{gen_metadata_variable} +\title{gen_metadata_variable} +\usage{ +gen_metadata_variable( + code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), + error.ignore = FALSE, + verbose = TRUE, + raw = FALSE, + ... +) +} +\arguments{ +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} + +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{raw}{Boolean. Should a non-parsed API response be returned? Default option is 'FALSE'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +} +\value{ +A list with all recalled elements from the API. Attributes are added to the data.frame describing the search configuration for the returned output. +} +\description{ +Function to search for meta information for a specific variable. +} +\examples{ +\dontrun{ +# Find meta-information of the variable with the code "FAMSTD" +object <- gen_metadata_var(code = "FAMSTD") +} + +} diff --git a/man/gen_modified_data.Rd b/man/gen_modified_data.Rd index dd3cc69..de0e4df 100644 --- a/man/gen_modified_data.Rd +++ b/man/gen_modified_data.Rd @@ -2,29 +2,35 @@ % Please edit documentation in R/gen_modified_data.R \name{gen_modified_data} \alias{gen_modified_data} -\title{gen_modified_data: Explore New Added Objects or Changed Objects in Genesis} +\title{gen_modified_data} \usage{ gen_modified_data( code = "", + database = c("all", "genesis", "zensus", "regio"), type = c("all", "tables", "statistics", "statisticsUpdates"), date = c("now", "week_before", "month_before", "year_before"), + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis object. Only one code per iteration. "*" notations are possible. Empty code (default value) includes all changes, updates, and new added objects.} +\item{code}{A character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{type}{a string. Specific Genesis object type: 'tables', 'statistics', and 'statisticsUpdates'. All three can be accessed through "all", which is the default.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{date}{a string. Specific date that is used as the last update or upload time in Genesis to include a Genesis object in return. Default option is 'now', which uses the current date of your system. Alternative options are 'week_before', using the current date of your system minus 7 days, 'month_before', using the current date of your system minus 4 weeks, and 'year_before', using the current date of your system minus 52 weeks. Additionally, it is possible to fill in a specific date of format 'DD.MM.YYYY'.} +\item{type}{Character string. Specific GENESIS and regionalstatistik.de object types: 'tables', 'statistics', and 'statisticsUpdates'. Specific Zensus 2022 object types: 'tables' and 'statistics'. All types that are specific for one database can be used together through 'all', which is the default.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{date}{Character string. Specific date that is used as the last update or upload time to include an object in return. Default option is 'now', which uses the current date of your system. Alternative options are 'week_before', using the current date of your system minus 7 days, 'month_before', using the current date of your system minus 4 weeks, and 'year_before', using the current date of your system minus 52 weeks. Additionally, it is possible to fill in a specific date of format 'DD.MM.YYYY'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. +A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to check for updates, changes, or new objects in Genesis based on a specific date. +Function to check for updates, changes, or new objects based on a specific date. } \examples{ \dontrun{ diff --git a/man/gen_objects2stat.Rd b/man/gen_objects2stat.Rd index 01662c9..47c1b29 100644 --- a/man/gen_objects2stat.Rd +++ b/man/gen_objects2stat.Rd @@ -2,32 +2,44 @@ % Please edit documentation in R/gen_objects2stat.R \name{gen_objects2stat} \alias{gen_objects2stat} -\title{gen_objects2stat: Get Objects Related To Statistics} +\title{gen_objects2stat} \usage{ gen_objects2stat( code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "variables", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 6 characters (15 characters if cubes are not used as a category). Code from a Genesis-Object. Only one code per iteration.} +\item{code}{Character string with a maximum length of 6 characters (15 characters if 'cubes' are not used as a category). Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{category}{a string. Specific object-types: 'tables', 'variables', and 'cubes'. All three together are possible and the default option.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{detailed}{a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE.} +\item{category}{Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} + +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to find objects related to a statistic in Genesis. +Function to find objects related to a statistic } \examples{ \dontrun{ diff --git a/man/gen_objects2var.Rd b/man/gen_objects2var.Rd index a364c79..0ef8516 100644 --- a/man/gen_objects2var.Rd +++ b/man/gen_objects2var.Rd @@ -2,32 +2,44 @@ % Please edit documentation in R/gen_objects2var.R \name{gen_objects2var} \alias{gen_objects2var} -\title{gen_objects2var: Get Objects Related To Variable} +\title{gen_objects2var} \usage{ gen_objects2var( code = NULL, + database = c("all", "genesis", "zensus", "regio"), category = c("tables", "statistics", "cubes"), + area = c("all", "public", "user"), detailed = FALSE, + sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} +\item{code}{Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{category}{a string. Specific object-types: 'tables', 'statistics', and 'cubes'. All three together are possible and the default option.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{detailed}{a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE.} +\item{category}{Character string. Specify specific GENESIS/regionalstatistik.de object types ('tables', 'statistics' and 'cubes') and specific Zensus 2022 object types ('tables' and 'statistics'). All types that are specific for one database can be used together. Default option is to use all types that are possible for the specific database.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} + +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to find objects related to a variable in Genesis. +Function to find objects related to a variable } \examples{ \dontrun{ diff --git a/man/gen_search_vars.Rd b/man/gen_search_vars.Rd index 5ef1a04..c6c1917 100644 --- a/man/gen_search_vars.Rd +++ b/man/gen_search_vars.Rd @@ -2,29 +2,38 @@ % Please edit documentation in R/gen_var2-val2.R \name{gen_search_vars} \alias{gen_search_vars} -\title{gen_search_vars: Search for Specific Variables} +\title{gen_search_vars} \usage{ gen_search_vars( code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 6. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder.} +\item{code}{Character string with a maximum length of 6 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{sortcriterion}{a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code".} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to search for specific variables in Genesis. +Function to search for specific variables } \examples{ \dontrun{ diff --git a/man/gen_signs.Rd b/man/gen_signs.Rd new file mode 100644 index 0000000..714d264 --- /dev/null +++ b/man/gen_signs.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_qualitysigns.R +\name{gen_signs} +\alias{gen_signs} +\title{gen_signs} +\usage{ +gen_signs(database = c("all", "genesis", "zensus", "regio"), ...) +} +\arguments{ +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +} +\value{ +A list of all current used special signs. +} +\description{ +Function to list all currently used special signs (e.g., 0, *, X, (), p, ...) and their meaning in GENESIS, Zensus 2022 and/or regionalstatistik.de. +} diff --git a/man/gen_table.Rd b/man/gen_table.Rd index 5d4ac6f..84f3632 100644 --- a/man/gen_table.Rd +++ b/man/gen_table.Rd @@ -7,41 +7,47 @@ gen_table(name, ...) } \arguments{ -\item{name}{a string. Name of the table. Use of wildcards (\code{*}) allowed.} +\item{name}{Character string. Name/code of the table. Use of wildcards (\code{*}) is possible.} \item{...}{Optional parameters passed on to the Genesis API call: \describe{ -\item{\code{area}}{a string. The area in which the table is stored. Possible values: +\item{\code{area}}{Character string. The area in which the table is stored. Possible values: \itemize{ \item \code{"public"}: table in the public catalogue \item \code{"user"}: table in the user's account +\item \code{"all"}: both of the above }} -\item{\code{compress}}{a logical. Should empty rows and columns be discarded?} -\item{\code{transpose}}{a logical. Reshape the table between "wide" and +\item{\code{compress}}{Boolean. Should empty rows and columns be discarded?} +\item{\code{transpose}}{Boolean. Reshape the table between "wide" and "long" format.} -\item{\code{startyear,endyear}}{a number. Only retrieve data between these years.} -\item{\code{regionalvariable}}{character. Code of the regional variable +\item{\code{startyear,endyear}}{Four-digit integers. Only retrieve data between these years.} +\item{\code{regionalvariable}}{Character string. Code of the regional variable whose value is specified in \code{regionalkey} to filter the results.} -\item{\code{regionalkey}}{character. One or more regional keys. Multiple +\item{\code{regionalkey}}{Character string. One or more regional keys. Multiple values can be supplied as a character vector or as a single string, with the regional keys separated by commas. Use of wildcard (\code{*}) allowed.} \item{\code{classifyingvariable1,classifyingvariable2 - ,classifyingvariable3}}{character. Code of the subject classification + ,classifyingvariable3}}{Character string. Code of the subject classification (SK-Merkmal) to which the selection by means of the corresponding \code{classifyingkey} parameter is to be applied.} -\item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{character. +\item{\code{classifyingkey1,classifyingkey2,classifyingkey3}}{Character string. One or more values of a subject classification (e.g. "WZ93012"). Applied to the corresponding \code{classifyingvariable} parameter. Multiple keys can be supplied as a character vector or as a single string, with the keys separated by commas. Use of wildcard (\code{*}) allowed.} -\item{\code{stand}}{a string \code{"DD.MM.YYYY"}. Only retrieve data -updated after this #' date.} +\item{\code{stand}}{Character string, format: \code{"DD.MM.YYYY"}. Only retrieve data +updated after this date.} \item{\code{language}}{Search terms, returned messages and data descriptions in German (\code{"de"}) or English (\code{"en"})?} +\item{\code{job}}{Boolean. Indicate as to whether a job should be created +(not available with the 'Zensus' database).)} +\item{\code{all_character}}{Boolean. Should all variables be imported as +'character' variables? Avoids fuzzy data type conversions if there are +leading zeros or other special characters. Defaults to TRUE.} }} } \description{ -Download a table with data from Genesis +Download a table with data from GENESIS, Zensus 2022 or regionalstatistik.de databases } \examples{ \dontrun{ diff --git a/man/gen_update_evas.Rd b/man/gen_update_evas.Rd new file mode 100644 index 0000000..714a1b9 --- /dev/null +++ b/man/gen_update_evas.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_update_evas.R +\name{gen_update_evas} +\alias{gen_update_evas} +\title{gen_update_evas} +\usage{ +gen_update_evas() +} +\value{ +An updated .rda file containing the latest EVAS numbers +} +\description{ +Function to web scrape the EVAS numbers from the EVAS website and save them as a .rda file. Takes no parameters. +} diff --git a/man/gen_val2var.Rd b/man/gen_val2var.Rd index f51da25..40df213 100644 --- a/man/gen_val2var.Rd +++ b/man/gen_val2var.Rd @@ -2,29 +2,38 @@ % Please edit documentation in R/gen_var2-val2.R \name{gen_val2var} \alias{gen_val2var} -\title{gen_val2var: Get Values From a Variable} +\title{gen_val2var} \usage{ gen_val2var( code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), sortcriterion = c("code", "content"), - error.ignore = FALSE, + error.ignore = TRUE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration.} +\item{code}{Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{sortcriterion}{a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code".} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator for values if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE', this prevents the function to stop even if a variable has no further explanation (often the case for numerical variables).} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to extract the possible values from a variable from Genesis. Values for continuous variables are not extractable, so the function returns a warning message. +Function to extract the possible values from a variable. Values for continuous variables are not extractable, which is why the function returns a warning message in this case. } \examples{ \dontrun{ diff --git a/man/gen_val2var2stat.Rd b/man/gen_val2var2stat.Rd index 1ad607b..31b1825 100644 --- a/man/gen_val2var2stat.Rd +++ b/man/gen_val2var2stat.Rd @@ -2,29 +2,41 @@ % Please edit documentation in R/gen_var2-val2.R \name{gen_val2var2stat} \alias{gen_val2var2stat} -\title{gen_val2var2stat: Get Values From a Variable From a Statistic} +\title{gen_val2var2stat} \usage{ gen_val2var2stat( code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), detailed = FALSE, sortcriterion = c("code", "content"), - error.ignore = FALSE, + error.ignore.var = FALSE, + error.ignore.val = TRUE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder.} +\item{code}{Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{detailed}{a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. This parameter only affects the details of the variables-related output. The default is FALSE.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{sortcriterion}{a string. Indicator if the output should be sorted by 'code' or 'content'. This is an parameter of the Genesis API call itself. The default is "code".} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore.var}{Boolean. Indicator for variables if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{error.ignore.val}{Boolean. Indicator for values if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'TRUE', this prevents the function to stop even if a variable has no further explanation (often the case for numerical variables).} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ Get values from variables from a statistic. Values for continuous variables cannot be extracted, so the function returns a warning message. diff --git a/man/gen_var2stat.Rd b/man/gen_var2stat.Rd index 29f39b9..606dba9 100644 --- a/man/gen_var2stat.Rd +++ b/man/gen_var2stat.Rd @@ -2,32 +2,41 @@ % Please edit documentation in R/gen_var2-val2.R \name{gen_var2stat} \alias{gen_var2stat} -\title{gen_var2stat: Get Variables From a Statistic} +\title{gen_var2stat} \usage{ gen_var2stat( code = NULL, + database = c("all", "genesis", "zensus", "regio"), + area = c("all", "public", "user"), detailed = FALSE, sortcriterion = c("code", "content"), error.ignore = FALSE, + verbose = TRUE, ... ) } \arguments{ -\item{code}{a string with a maximum length of 15 characters. Code from a Genesis-Object. Only one code per iteration. "*"-Notations are possibly to be used as a placeholder.} +\item{code}{Character string with a maximum length of 15 characters. Code from a GENESIS, Zensus 2022 or regionalstatistik.de object. Only one code per iteration.} -\item{detailed}{a logical. Indicator if function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. The default is detailed = FALSE.} +\item{database}{Character string. Indicator if the GENESIS ('genesis'), Zensus 2022 ('zensus') or regionalstatistik.de ('regio') database is called. Default option is 'all'.} -\item{sortcriterion}{a string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the Genesis API call itself. The default is "code".} +\item{area}{Character string. Indicator from which area of the database the results are called. In general, 'all' is the appropriate solution. Default option is 'all'. Not used for 'statistics'.} -\item{error.ignore}{a logical. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response.} +\item{detailed}{Boolean. Indicator if the function should return the detailed output of the iteration including all object-related information or only a shortened output including only code and object title. Default option is 'FALSE'.} -\item{...}{Additional parameters for the Genesis API call. These parameters are only affecting the Genesis call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} +\item{sortcriterion}{Character string. Indicator if the output should be sorted by 'code' or 'content'. This is a parameter of the API call itself. The default is 'code'.} + +\item{error.ignore}{Boolean. Indicator if the function should stop if an error occurs or no object for the request is found or if it should produce a token as response. Default option is 'FALSE'.} + +\item{verbose}{Boolean. Indicator if the output of the function should include detailed messages and warnings. Default option is 'TRUE'. Set the parameter to 'FALSE' to suppress additional messages and warnings.} + +\item{...}{Additional parameters for the API call. These parameters are only affecting the call itself, no further processing. For more details see \code{vignette("additional_parameter")}.} } \value{ -A list with all recalled elements from Genesis. Based on the detailed-parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing of the data. Attributes are added to the dataframe describing the search configuration for the returned output. +A list with all recalled elements from the API. Based on the 'detailed' parameter it contains more or less information, but always includes the code of the object, the title, and the type of the object. This is done to facilitate further processing with the data. Attributes are added to the data.frame describing the search configuration for the returned output. } \description{ -Function to generate variables from statistics in Genesis. +Function to generate variables from statistics } \examples{ \dontrun{ diff --git a/man/ggsub.Rd b/man/ggsub.Rd new file mode 100644 index 0000000..d895d1e --- /dev/null +++ b/man/ggsub.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{ggsub} +\alias{ggsub} +\title{ggsub} +\usage{ +ggsub(x) +} +\arguments{ +\item{x}{Element to subset with $Content} +} +\description{ +ggsub +} diff --git a/man/insert_and_save_credentials.Rd b/man/insert_and_save_credentials.Rd new file mode 100644 index 0000000..7778e79 --- /dev/null +++ b/man/insert_and_save_credentials.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{insert_and_save_credentials} +\alias{insert_and_save_credentials} +\title{insert_and_save_credentials} +\usage{ +insert_and_save_credentials(database) +} +\arguments{ +\item{database}{The database to specify credentials for} +} +\description{ +insert_and_save_credentials +} diff --git a/man/is_cube_metadata_header.Rd b/man/is_cube_metadata_header.Rd new file mode 100644 index 0000000..7b12709 --- /dev/null +++ b/man/is_cube_metadata_header.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{is_cube_metadata_header} +\alias{is_cube_metadata_header} +\title{is_cube_metadata_header} +\usage{ +is_cube_metadata_header(lines) +} +\arguments{ +\item{lines}{Lines to check for header} +} +\description{ +is_cube_metadata_header +} diff --git a/man/logincheck_http_error.Rd b/man/logincheck_http_error.Rd new file mode 100644 index 0000000..75e1cf1 --- /dev/null +++ b/man/logincheck_http_error.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{logincheck_http_error} +\alias{logincheck_http_error} +\title{logincheck_http_error} +\usage{ +logincheck_http_error(database, verbose) +} +\arguments{ +\item{database}{The user input to 'gen_logincheck'} + +\item{verbose}{Boolean. Should the function message in case of success?} +} +\value{ +Informative error/warning messages + invisibly TRUE/FALSE +} +\description{ +logincheck_http_error +} diff --git a/man/logincheck_stop_or_warn.Rd b/man/logincheck_stop_or_warn.Rd new file mode 100644 index 0000000..0c966d0 --- /dev/null +++ b/man/logincheck_stop_or_warn.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{logincheck_stop_or_warn} +\alias{logincheck_stop_or_warn} +\title{logincheck_stop_or_warn} +\usage{ +logincheck_stop_or_warn(response, error, verbose, database) +} +\arguments{ +\item{response}{A HTTP response object} + +\item{error}{Boolean. Should the function warn or throw an error?} + +\item{verbose}{Boolean. Should the function message in case of success?} + +\item{database}{The database that the check should be run for} +} +\value{ +In case of failure warns or errors. Invisibly returns TRUE (success) or FALSE (failure) +} +\description{ +logincheck_stop_or_warn +} diff --git a/man/param_check_regionalkey.Rd b/man/param_check_regionalkey.Rd new file mode 100644 index 0000000..551318a --- /dev/null +++ b/man/param_check_regionalkey.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{param_check_regionalkey} +\alias{param_check_regionalkey} +\title{param_check_regionalkey} +\usage{ +param_check_regionalkey(regionalkey) +} +\arguments{ +\item{regionalkey}{Regional key} +} +\description{ +param_check_regionalkey +} diff --git a/man/param_check_year.Rd b/man/param_check_year.Rd new file mode 100644 index 0000000..83f01cd --- /dev/null +++ b/man/param_check_year.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{param_check_year} +\alias{param_check_year} +\title{param_check_year} +\usage{ +param_check_year(year) +} +\arguments{ +\item{year}{Year as parameter value} +} +\description{ +param_check_year +} diff --git a/man/param_collapse_vec.Rd b/man/param_collapse_vec.Rd new file mode 100644 index 0000000..f1d4182 --- /dev/null +++ b/man/param_collapse_vec.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{param_collapse_vec} +\alias{param_collapse_vec} +\title{param_collapse_vec} +\usage{ +param_collapse_vec(vec) +} +\arguments{ +\item{vec}{Vector to be collapsed} +} +\description{ +param_collapse_vec +} diff --git a/man/read_cube.Rd b/man/read_cube.Rd new file mode 100644 index 0000000..fe3aa0a --- /dev/null +++ b/man/read_cube.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{read_cube} +\alias{read_cube} +\title{read_cube} +\usage{ +read_cube(resp) +} +\arguments{ +\item{resp}{API response object resulting from a call to 'data/cubefile'} +} +\description{ +read_cube +} diff --git a/man/read_cube_block.Rd b/man/read_cube_block.Rd new file mode 100644 index 0000000..caa66f0 --- /dev/null +++ b/man/read_cube_block.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{read_cube_block} +\alias{read_cube_block} +\title{read_cube_block} +\usage{ +read_cube_block(lines) +} +\arguments{ +\item{lines}{Lines to read as header} +} +\description{ +read_cube_block +} diff --git a/man/read_cube_data_lines.Rd b/man/read_cube_data_lines.Rd new file mode 100644 index 0000000..64f5578 --- /dev/null +++ b/man/read_cube_data_lines.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{read_cube_data_lines} +\alias{read_cube_data_lines} +\title{read_cube_data_lines} +\usage{ +read_cube_data_lines(lines, col_names) +} +\arguments{ +\item{lines}{Lines to read data from} + +\item{col_names}{Specify column names} +} +\description{ +read_cube_data_lines +} diff --git a/man/read_cube_metadata_header.Rd b/man/read_cube_metadata_header.Rd new file mode 100644 index 0000000..46789ce --- /dev/null +++ b/man/read_cube_metadata_header.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{read_cube_metadata_header} +\alias{read_cube_metadata_header} +\title{read_cube_metadata_header} +\usage{ +read_cube_metadata_header(line, rename_dups = TRUE) +} +\arguments{ +\item{line}{Line to read} + +\item{rename_dups}{Rename duplicates?} +} +\description{ +read_cube_metadata_header +} diff --git a/man/rename_cube_data_columns.Rd b/man/rename_cube_data_columns.Rd new file mode 100644 index 0000000..1ffd4ab --- /dev/null +++ b/man/rename_cube_data_columns.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{rename_cube_data_columns} +\alias{rename_cube_data_columns} +\title{rename_cube_data_columns} +\usage{ +rename_cube_data_columns(cube) +} +\arguments{ +\item{cube}{A cube object to rename the columns in} +} +\description{ +rename_cube_data_columns +} diff --git a/man/resp_check_data.Rd b/man/resp_check_data.Rd new file mode 100644 index 0000000..cc1deb2 --- /dev/null +++ b/man/resp_check_data.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{resp_check_data} +\alias{resp_check_data} +\title{resp_check_data} +\usage{ +resp_check_data(resp) +} +\arguments{ +\item{resp}{Response object} +} +\description{ +resp_check_data +} diff --git a/man/return_table_object.Rd b/man/return_table_object.Rd new file mode 100644 index 0000000..3922872 --- /dev/null +++ b/man/return_table_object.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{return_table_object} +\alias{return_table_object} +\title{return_table_object} +\usage{ +return_table_object(response, response_type, language, all_character) +} +\arguments{ +\item{response}{Response object} + +\item{response_type}{Response type} + +\item{language}{Language locale} + +\item{all_character}{Read all variables as character?} +} +\description{ +return_table_object +} diff --git a/man/rev_database_function.Rd b/man/rev_database_function.Rd new file mode 100644 index 0000000..4ed4acd --- /dev/null +++ b/man/rev_database_function.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{rev_database_function} +\alias{rev_database_function} +\title{rev_database_function} +\usage{ +rev_database_function(input) +} +\arguments{ +\item{input}{Input to test for database name} +} +\description{ +rev_database_function +} diff --git a/man/spezifisch_create.Rd b/man/spezifisch_create.Rd new file mode 100644 index 0000000..5b562fb --- /dev/null +++ b/man/spezifisch_create.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{spezifisch_create} +\alias{spezifisch_create} +\title{spezifisch_create} +\usage{ +spezifisch_create(x) +} +\arguments{ +\item{x}{Element to extract $Spezifisch from} +} +\description{ +spezifisch_create +} diff --git a/man/split_cube.Rd b/man/split_cube.Rd new file mode 100644 index 0000000..f83a4db --- /dev/null +++ b/man/split_cube.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gen_cube.R +\name{split_cube} +\alias{split_cube} +\title{split_cube} +\usage{ +split_cube(lines) +} +\arguments{ +\item{lines}{Lines to split a cube} +} +\description{ +split_cube +} diff --git a/man/test_database_function.Rd b/man/test_database_function.Rd new file mode 100644 index 0000000..61fccf5 --- /dev/null +++ b/man/test_database_function.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{test_database_function} +\alias{test_database_function} +\title{test_database_function} +\usage{ +test_database_function(input, error.input, text) +} +\arguments{ +\item{input}{Input to test for database name} + +\item{error.input}{Indicator error.ignore} + +\item{text}{Indicator verbose} +} +\description{ +test_database_function +} diff --git a/man/test_if_error.Rd b/man/test_if_error.Rd new file mode 100644 index 0000000..8f25f55 --- /dev/null +++ b/man/test_if_error.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_error} +\alias{test_if_error} +\title{test_if_error} +\usage{ +test_if_error(input, para, verbose = NULL) +} +\arguments{ +\item{input}{Response object} + +\item{para}{Parameter TRUE/FALSE} + +\item{verbose}{Verbose TRUE/FALSE} +} +\description{ +test_if_error +} diff --git a/man/test_if_error_find.Rd b/man/test_if_error_find.Rd new file mode 100644 index 0000000..6905adb --- /dev/null +++ b/man/test_if_error_find.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_error_find} +\alias{test_if_error_find} +\title{test_if_error_find} +\usage{ +test_if_error_find(input, para, verbose = NULL) +} +\arguments{ +\item{input}{Response object} + +\item{para}{Parameter TRUE/FALSE} + +\item{verbose}{Verbose TRUE/FALSE} +} +\description{ +test_if_error_find +} diff --git a/man/test_if_error_light.Rd b/man/test_if_error_light.Rd new file mode 100644 index 0000000..68843fd --- /dev/null +++ b/man/test_if_error_light.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_error_light} +\alias{test_if_error_light} +\title{test_if_error_light} +\usage{ +test_if_error_light(input, verbose = NULL) +} +\arguments{ +\item{input}{Response object} + +\item{verbose}{Verbose TRUE/FALSE} +} +\description{ +test_if_error_light +} diff --git a/man/test_if_error_variables.Rd b/man/test_if_error_variables.Rd new file mode 100644 index 0000000..501028c --- /dev/null +++ b/man/test_if_error_variables.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_error_variables} +\alias{test_if_error_variables} +\title{test_if_error_variables} +\usage{ +test_if_error_variables(input, para) +} +\arguments{ +\item{input}{Response object} + +\item{para}{Parameter TRUE/FALSE} +} +\description{ +test_if_error_variables +} diff --git a/man/test_if_json.Rd b/man/test_if_json.Rd new file mode 100644 index 0000000..c90b682 --- /dev/null +++ b/man/test_if_json.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_json} +\alias{test_if_json} +\title{test_if_json} +\usage{ +test_if_json(input) +} +\arguments{ +\item{input}{Response object} +} +\description{ +test_if_json +} diff --git a/man/test_if_okay.Rd b/man/test_if_okay.Rd new file mode 100644 index 0000000..4a56348 --- /dev/null +++ b/man/test_if_okay.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_okay} +\alias{test_if_okay} +\title{test_if_okay} +\usage{ +test_if_okay(input) +} +\arguments{ +\item{input}{Response object} +} +\description{ +test_if_okay +} diff --git a/man/test_if_process_further.Rd b/man/test_if_process_further.Rd new file mode 100644 index 0000000..430d82e --- /dev/null +++ b/man/test_if_process_further.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_httr2.R +\name{test_if_process_further} +\alias{test_if_process_further} +\title{test_if_process_further} +\usage{ +test_if_process_further(input, para, verbose = NULL) +} +\arguments{ +\item{input}{Response object} + +\item{para}{Parameter TRUE/FALSE} + +\item{verbose}{Verbose TRUE/FALSE} +} +\description{ +test_if_process_further +} diff --git a/man/titel_search.Rd b/man/titel_search.Rd new file mode 100644 index 0000000..b908e46 --- /dev/null +++ b/man/titel_search.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils_dataprocessing.R +\name{titel_search} +\alias{titel_search} +\title{titel_search} +\usage{ +titel_search(x, term, text) +} +\arguments{ +\item{x}{Element to extract $Content from} + +\item{term}{Search term} + +\item{text}{Indicator verbose} +} +\description{ +titel_search +} diff --git a/tests/testthat/catalogue1/api/catalogue/tables-30cbd2.json b/tests/testthat/catalogue1/api/catalogue/tables-30cbd2.json new file mode 100644 index 0000000..fb67add --- /dev/null +++ b/tests/testthat/catalogue1/api/catalogue/tables-30cbd2.json @@ -0,0 +1,119 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables" + }, + "Status": { + "Code": 0, + "Content": "successfull", + "Type": "information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "selection": "611*", + "area": "all", + "searchcriterion": "code", + "sortcriterion": "code", + "pagelength": "100", + "language": "en" + }, + "List": [ + { + "Code": "61111-0001", + "Content": "Consumer price index: Germany, years", + "Time": "1991 to 2023" + }, + { + "Code": "61111-0002", + "Content": "Consumer price index: Germany, months", + "Time": "January 1991 to May 2024" + }, + { + "Code": "61111-0003", + "Content": "Consumer price index: Germany, years, individual consumption\nby purpose (COICOP 2-5-digit hierarchy)", + "Time": "1991 to 2023" + }, + { + "Code": "61111-0004", + "Content": "Consumer price index: Germany, months, individual\nconsumption by purpose (COICOP 2-5-digit hierarchy)", + "Time": "January 1991 to May 2024" + }, + { + "Code": "61111-0005", + "Content": "Consumer price index: Germany, years, individual consumption\nby purpose (COICOP 2-/3-/4-/5-/10-digit codes/special items)", + "Time": "1991 to 2023" + }, + { + "Code": "61111-0006", + "Content": "Consumer price index: Germany, months, individual\nconsumption by purpose (COICOP 2-/3-/4-/5-/10-digit codes/\nspecial items)", + "Time": "January 1991 to May 2024" + }, + { + "Code": "61111-0007", + "Content": "Weighting scheme of the consumer price index: Germany,\nyears, individual consumption by purpose (COICOP 2-5-digit\nhierarchy)", + "Time": "2020 to 2020" + }, + { + "Code": "61111-0010", + "Content": "Consumer price index: Länder, years", + "Time": "1995 to 2023" + }, + { + "Code": "61111-0011", + "Content": "Consumer price index: Länder, months", + "Time": "January 1995 to May 2024" + }, + { + "Code": "61111-0020", + "Content": "Index of net rents exclusive of heating expenses:\nLänder, years", + "Time": "2005 to 2023" + }, + { + "Code": "61111-0021", + "Content": "Index of net rents exclusive of heating expenses:\nLänder, months", + "Time": "January 2005 to May 2024" + }, + { + "Code": "61121-0001", + "Content": "Harmonised index of consumer prices: Germany, years", + "Time": "1996 to 2023" + }, + { + "Code": "61121-0002", + "Content": "Harmonised index of consumer prices: Germany, months", + "Time": "January 1996 to May 2024" + }, + { + "Code": "61121-0003", + "Content": "Harmonised index of consumer prices: Germany, years,\nEuropean classification of individual consumption by purpose\n(ECOICOP 2-5-digit hierarchy)", + "Time": "1996 to 2023" + }, + { + "Code": "61121-0004", + "Content": "Harmonised index of consumer prices: Germany, months,\nEuropean classification of individual consumption by purpose\n(ECOICOP 2-5-digit hierarchy)", + "Time": "January 1996 to May 2024" + }, + { + "Code": "61121-0005", + "Content": "Harmonised index of consumer prices: Germany, years,\nEuropean classification of individual consumption by purpose\n(ECOICOP 2-/3-/4-/5-digit codes/special items)", + "Time": "1996 to 2023" + }, + { + "Code": "61121-0006", + "Content": "Harmonised index of consumer prices: Germany, months,\nEuropean classification of individual consumption by purpose\n(ECOICOP 2-/3-/4-/5-digit codes/special items)", + "Time": "January 1996 to May 2024" + }, + { + "Code": "61131-0001", + "Content": "Index of retail prices: Germany, years, value added tax,\neconomic activities", + "Time": "1991 to 2023" + }, + { + "Code": "61131-0002", + "Content": "Index of retail prices: Germany, months, value added tax,\neconomic activities", + "Time": "January 1991 to May 2024" + } + ], + "Copyright": "© Federal Statistical Office, Wiesbaden 2024" +} diff --git a/tests/testthat/catalogue2/api/catalogue/statistics-f5c1c1.json b/tests/testthat/catalogue2/api/catalogue/statistics-f5c1c1.json index b12efe9..8c38095 100644 --- a/tests/testthat/catalogue2/api/catalogue/statistics-f5c1c1.json +++ b/tests/testthat/catalogue2/api/catalogue/statistics-f5c1c1.json @@ -21,10 +21,10 @@ "List": [ { "Code": "41141", - "Content": "Landwirtschaftszaehlung: Haupterhebung", + "Content": "Landwirtschaftszählung: Haupterhebung", "Cubes": "176", "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/catalogue3/api/catalogue/cubes-b8e23a.json b/tests/testthat/catalogue3/api/catalogue/cubes-57cf25.json similarity index 82% rename from tests/testthat/catalogue3/api/catalogue/cubes-b8e23a.json rename to tests/testthat/catalogue3/api/catalogue/cubes-57cf25.json index c892017..60b6e2d 100644 --- a/tests/testthat/catalogue3/api/catalogue/cubes-b8e23a.json +++ b/tests/testthat/catalogue3/api/catalogue/cubes-57cf25.json @@ -12,10 +12,10 @@ "username": "********************", "password": "********************", "selection": "41141", - "area": "oeffentlich", + "area": "Alle", "pagelength": "100", "language": "de" }, "List": null, - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/catalogue4/api/catalogue/cubes-6cb32c.json b/tests/testthat/catalogue4/api/catalogue/cubes-6cb32c.json deleted file mode 100644 index 7ec310b..0000000 --- a/tests/testthat/catalogue4/api/catalogue/cubes-6cb32c.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "cubes" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "611*", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "61111B5001", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5002", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5003", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5004", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111BJ001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:07:11h", - "Information": "false" - }, - { - "Code": "61111BJ002", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:09:18h", - "Information": "false" - }, - { - "Code": "61111BJ003", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:11:38h", - "Information": "false" - }, - { - "Code": "61111BJ004", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ005", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ006", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ007", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "03.03.2023 10:05:14h", - "Information": "false" - }, - { - "Code": "61111BM001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:47h", - "Information": "false" - }, - { - "Code": "61111BM002", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:35h", - "Information": "false" - }, - { - "Code": "61111BM003", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:54h", - "Information": "false" - }, - { - "Code": "61111BM004", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:51h", - "Information": "false" - }, - { - "Code": "61111BM005", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:38h", - "Information": "false" - }, - { - "Code": "61111BM006", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:28h", - "Information": "false" - }, - { - "Code": "61111BM007", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:31h", - "Information": "false" - }, - { - "Code": "61111LJ001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Bundesl?nder, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:47:09h", - "Information": "false" - }, - { - "Code": "61111LJ100", - "Content": "Verbraucherpreisindex f?r Deutschland, Index der Nettokaltmieten, Bundesl?nder, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:47:09h", - "Information": "false" - }, - { - "Code": "61111LM001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Bundesl?nder, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:41h", - "Information": "false" - }, - { - "Code": "61111LM100", - "Content": "Verbraucherpreisindex f?r Deutschland, Index der Nettokaltmieten, Bundesl?nder, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:44h", - "Information": "false" - }, - { - "Code": "61121BJ001", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Ver?nderungsrate zum Vorjahr, Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:25h", - "Information": "false" - }, - { - "Code": "61121BJ002", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 2-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:26h", - "Information": "false" - }, - { - "Code": "61121BJ003", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 3-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:26h", - "Information": "false" - }, - { - "Code": "61121BJ004", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 4-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:26h", - "Information": "false" - }, - { - "Code": "61121BJ005", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 5-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:26h", - "Information": "false" - }, - { - "Code": "61121BJ006", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, Sonderpos., Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1996-2022", - "LatestUpdate": "24.01.2023 17:58:26h", - "Information": "false" - }, - { - "Code": "61121BM001", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Ver?nderungsrate zum Vorjahresmonat, Ver?nderungsrate zum Vormonat, Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:01:38h", - "Information": "false" - }, - { - "Code": "61121BM002", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 2-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:57h", - "Information": "false" - }, - { - "Code": "61121BM003", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 3-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:01:34h", - "Information": "false" - }, - { - "Code": "61121BM004", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 4-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:01:31h", - "Information": "false" - }, - { - "Code": "61121BM005", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 5-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:01:28h", - "Information": "false" - }, - { - "Code": "61121BM006", - "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, Sonderpos., Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1996-Februar 2023", - "LatestUpdate": "10.03.2023 08:01:41h", - "Information": "false" - }, - { - "Code": "61131BJ001", - "Content": "Index der Einzelhandelspreise, Index der Einzelhandelspreise, WZ2008 (ausgew?hlte Pos.): Einzelhandelspreise, Mehrwertsteuer, Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "13.03.2023 12:04:08h", - "Information": "false" - }, - { - "Code": "61131BM001", - "Content": "Index der Einzelhandelspreise, Index der Einzelhandelspreise, WZ2008 (ausgew?hlte Pos.): Einzelhandelspreise, Mehrwertsteuer, Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "13.03.2023 12:03:56h", - "Information": "false" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/catalogue4/api/catalogue/cubes-e28931.json b/tests/testthat/catalogue4/api/catalogue/cubes-e28931.json new file mode 100644 index 0000000..e6bc3e0 --- /dev/null +++ b/tests/testthat/catalogue4/api/catalogue/cubes-e28931.json @@ -0,0 +1,310 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "cubes" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "selection": "611*", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "61111B5001", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:34:49h", + "Information": "false" + }, + { + "Code": "61111B5002", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:35:14h", + "Information": "false" + }, + { + "Code": "61111B5003", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:35:42h", + "Information": "false" + }, + { + "Code": "61111B5004", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:36:07h", + "Information": "false" + }, + { + "Code": "61111BJ001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:32h", + "Information": "false" + }, + { + "Code": "61111BJ002", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:23h", + "Information": "false" + }, + { + "Code": "61111BJ003", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:26h", + "Information": "false" + }, + { + "Code": "61111BJ004", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:51h", + "Information": "false" + }, + { + "Code": "61111BJ005", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:47h", + "Information": "false" + }, + { + "Code": "61111BJ006", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:29h", + "Information": "false" + }, + { + "Code": "61111BJ007", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "16.01.2024 08:00:43h", + "Information": "false" + }, + { + "Code": "61111BM001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:40h", + "Information": "false" + }, + { + "Code": "61111BM002", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:16h", + "Information": "false" + }, + { + "Code": "61111BM003", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:19h", + "Information": "false" + }, + { + "Code": "61111BM004", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:34h", + "Information": "false" + }, + { + "Code": "61111BM005", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:27h", + "Information": "false" + }, + { + "Code": "61111BM006", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:30h", + "Information": "false" + }, + { + "Code": "61111BM007", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2020-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:23h", + "Information": "false" + }, + { + "Code": "61111LJ001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Bundesländer, Jahr", + "State": "vollständig mit Werten", + "Time": "1995-2023", + "LatestUpdate": "16.01.2024 08:00:38h", + "Information": "false" + }, + { + "Code": "61111LJ100", + "Content": "Verbraucherpreisindex für Deutschland, Index der Nettokaltmieten, Bundesländer, Jahr", + "State": "vollständig mit Werten", + "Time": "2005-2023", + "LatestUpdate": "16.01.2024 08:00:35h", + "Information": "false" + }, + { + "Code": "61111LM001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Bundesländer, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1995-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:37h", + "Information": "false" + }, + { + "Code": "61111LM100", + "Content": "Verbraucherpreisindex für Deutschland, Index der Nettokaltmieten, Bundesländer, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2005-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:12h", + "Information": "false" + }, + { + "Code": "61121BJ001", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Veränderungsrate zum Vorjahr, Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "18.01.2024 10:54:46h", + "Information": "false" + }, + { + "Code": "61121BJ002", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 2-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "16.01.2024 08:01:58h", + "Information": "false" + }, + { + "Code": "61121BJ003", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "16.01.2024 08:02:34h", + "Information": "false" + }, + { + "Code": "61121BJ004", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 4-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "16.01.2024 08:02:26h", + "Information": "false" + }, + { + "Code": "61121BJ005", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "16.01.2024 08:01:54h", + "Information": "false" + }, + { + "Code": "61121BJ006", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, Sonderpos., Jahr", + "State": "vollständig mit Werten", + "Time": "1996-2023", + "LatestUpdate": "16.01.2024 08:02:23h", + "Information": "false" + }, + { + "Code": "61121BM001", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Veränderungsrate zum Vorjahresmonat, Veränderungsrate zum Vormonat, Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:26h", + "Information": "false" + }, + { + "Code": "61121BM002", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 2-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:43h", + "Information": "false" + }, + { + "Code": "61121BM003", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 3-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:23h", + "Information": "false" + }, + { + "Code": "61121BM004", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 4-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:19h", + "Information": "false" + }, + { + "Code": "61121BM005", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, 5-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:13h", + "Information": "false" + }, + { + "Code": "61121BM006", + "Content": "Harmonisierter Verbraucherpreisindex, Harmonisierter Verbraucherpreisindex, Deutschland insgesamt, ECOICOP: Harmon. Verbraucherpreisindex, Sonderpos., Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1996-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:16h", + "Information": "false" + }, + { + "Code": "61131BJ001", + "Content": "Index der Einzelhandelspreise, Index der Einzelhandelspreise, WZ2008 (ausgewählte Pos.): Einzelhandelspreise, Mehrwertsteuer, Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:03:00h", + "Information": "false" + }, + { + "Code": "61131BM001", + "Content": "Index der Einzelhandelspreise, Index der Einzelhandelspreise, WZ2008 (ausgewählte Pos.): Einzelhandelspreise, Mehrwertsteuer, Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:01:30h", + "Information": "false" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/catalogue4/api/catalogue/statistics-c47d1c.json b/tests/testthat/catalogue4/api/catalogue/statistics-c47d1c.json index e460dc0..c4223ca 100644 --- a/tests/testthat/catalogue4/api/catalogue/statistics-c47d1c.json +++ b/tests/testthat/catalogue4/api/catalogue/statistics-c47d1c.json @@ -21,7 +21,7 @@ "List": [ { "Code": "61111", - "Content": "Verbraucherpreisindex fuer Deutschland", + "Content": "Verbraucherpreisindex für Deutschland", "Cubes": "22", "Information": "true" }, @@ -38,5 +38,5 @@ "Information": "false" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/catalogue4/api/catalogue/tables-c47d1c.json b/tests/testthat/catalogue4/api/catalogue/tables-c47d1c.json deleted file mode 100644 index 2ec2f31..0000000 --- a/tests/testthat/catalogue4/api/catalogue/tables-c47d1c.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "611*", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "61111-0001", - "Content": "Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1991 - 2022" - }, - { - "Code": "61111-0002", - "Content": "Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1991 - Februar 2023" - }, - { - "Code": "61111-0003", - "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "2020 - 2022" - }, - { - "Code": "61111-0004", - "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "Januar 2020 - Februar 2023" - }, - { - "Code": "61111-0005", - "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "1991 - 2022" - }, - { - "Code": "61111-0006", - "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "Januar 1991 - Februar 2023" - }, - { - "Code": "61111-0007", - "Content": "W?gungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "1995 - 2020" - }, - { - "Code": "61111-0010", - "Content": "Verbraucherpreisindex: Bundesl?nder, Jahre", - "Time": "2020 - 2022" - }, - { - "Code": "61111-0011", - "Content": "Verbraucherpreisindex: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" - }, - { - "Code": "61111-0020", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Jahre", - "Time": "2020 - 2022" - }, - { - "Code": "61111-0021", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" - }, - { - "Code": "61121-0001", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1996 - 2022" - }, - { - "Code": "61121-0002", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1996 - Februar 2023" - }, - { - "Code": "61121-0003", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", - "Time": "1996 - 2022" - }, - { - "Code": "61121-0004", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", - "Time": "Januar 1996 - Februar 2023" - }, - { - "Code": "61121-0005", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", - "Time": "1996 - 2022" - }, - { - "Code": "61121-0006", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", - "Time": "Januar 1996 - Februar 2023" - }, - { - "Code": "61131-0001", - "Content": "Index der Einzelhandelspreise: Deutschland, Jahre,\nMehrwertsteuer, Wirtschaftszweige", - "Time": "1991 - 2022" - }, - { - "Code": "61131-0002", - "Content": "Index der Einzelhandelspreise: Deutschland, Monate,\nMehrwertsteuer, Wirtschaftszweige", - "Time": "Januar 1991 - Februar 2023" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/catalogue1/api/catalogue/tables-c47d1c.json b/tests/testthat/catalogue4/api/catalogue/tables-e234ed.json similarity index 64% rename from tests/testthat/catalogue1/api/catalogue/tables-c47d1c.json rename to tests/testthat/catalogue4/api/catalogue/tables-e234ed.json index 2ec2f31..0c8982c 100644 --- a/tests/testthat/catalogue1/api/catalogue/tables-c47d1c.json +++ b/tests/testthat/catalogue4/api/catalogue/tables-e234ed.json @@ -12,7 +12,7 @@ "username": "********************", "password": "********************", "selection": "611*", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "pagelength": "100", @@ -22,98 +22,98 @@ { "Code": "61111-0001", "Content": "Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0002", "Content": "Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0003", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "2020 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0004", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "Januar 2020 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0005", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0006", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0007", - "Content": "W?gungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "1995 - 2020" + "Content": "Wägungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", + "Time": "2020 - 2020" }, { "Code": "61111-0010", - "Content": "Verbraucherpreisindex: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Verbraucherpreisindex: Bundesländer, Jahre", + "Time": "1995 - 2023" }, { "Code": "61111-0011", - "Content": "Verbraucherpreisindex: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Verbraucherpreisindex: Bundesländer, Monate", + "Time": "Januar 1995 - Mai 2024" }, { "Code": "61111-0020", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Index der Nettokaltmieten: Bundesländer, Jahre", + "Time": "2005 - 2023" }, { "Code": "61111-0021", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Index der Nettokaltmieten: Bundesländer, Monate", + "Time": "Januar 2005 - Mai 2024" }, { "Code": "61121-0001", "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1996 - 2022" + "Time": "1996 - 2023" }, { "Code": "61121-0002", "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1996 - Februar 2023" + "Time": "Januar 1996 - Mai 2024" }, { "Code": "61121-0003", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", - "Time": "1996 - 2022" + "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europäische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", + "Time": "1996 - 2023" }, { "Code": "61121-0004", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", - "Time": "Januar 1996 - Februar 2023" + "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europäische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-5-Steller Hierarchie)", + "Time": "Januar 1996 - Mai 2024" }, { "Code": "61121-0005", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", - "Time": "1996 - 2022" + "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Jahre, Europäische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", + "Time": "1996 - 2023" }, { "Code": "61121-0006", - "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europ?ische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", - "Time": "Januar 1996 - Februar 2023" + "Content": "Harmonisierter Verbraucherpreisindex: Deutschland, Monate, Europäische Klassifikation der Verwendungszwecke des Individualkonsums (ECOICOP 2-/3-/4-/5-Steller/Sonderpositionen)", + "Time": "Januar 1996 - Mai 2024" }, { "Code": "61131-0001", "Content": "Index der Einzelhandelspreise: Deutschland, Jahre,\nMehrwertsteuer, Wirtschaftszweige", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61131-0002", "Content": "Index der Einzelhandelspreise: Deutschland, Monate,\nMehrwertsteuer, Wirtschaftszweige", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/catalogue5/api/catalogue/tables-5b59e0.json b/tests/testthat/catalogue5/api/catalogue/tables-5b59e0.json new file mode 100644 index 0000000..e627dd3 --- /dev/null +++ b/tests/testthat/catalogue5/api/catalogue/tables-5b59e0.json @@ -0,0 +1,54 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "selection": "711*", + "area": "Alle", + "searchcriterion": "Code", + "sortcriterion": "Code", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "71141-0001", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Ausgaben): Deutschland, Jahre, Körperschaftsgruppen,\nAusgabearten", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0002", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Einnahmen): Deutschland, Jahre, Körperschaftsgruppen,\nEinnahmearten", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0003", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Finanzierungssaldo, Besondere Finanzierungsvorgänge):\nDeutschland, Jahre, Körperschaftsgruppen", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0004", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Baumaßnahmen):\nDeutschland, Jahre, Körperschaftsgruppen, Aufgabenbereiche", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0005", + "Content": "Investitionsausgaben der öffentlichen Haushalte:\nDeutschland, Jahre, Körperschaftsgruppen, Art der\nInvestitionsausgaben", + "Time": "1984 - 2011" + }, + { + "Code": "71141-0006", + "Content": "Investitionsausgaben der öffentlichen Haushalte:\nBundesländer, Jahre, Körperschaftsgruppen, Art der\nInvestitionsausgaben", + "Time": "1984 - 2011" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/catalogue5/api/catalogue/tables-d53922.json b/tests/testthat/catalogue5/api/catalogue/tables-d53922.json deleted file mode 100644 index 919e6c6..0000000 --- a/tests/testthat/catalogue5/api/catalogue/tables-d53922.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "711*", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "71141-0001", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Ausgaben): Deutschland, Jahre, K?rperschaftsgruppen,\nAusgabearten", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0002", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Einnahmen): Deutschland, Jahre, K?rperschaftsgruppen,\nEinnahmearten", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0003", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Finanzierungssaldo, Besondere Finanzierungsvorg?nge):\nDeutschland, Jahre, K?rperschaftsgruppen", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0004", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Bauma?nahmen):\nDeutschland, Jahre, K?rperschaftsgruppen, Aufgabenbereiche", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0005", - "Content": "Investitionsausgaben der ?ffentlichen Haushalte:\nDeutschland, Jahre, K?rperschaftsgruppen, Art der\nInvestitionsausgaben", - "Time": "1984 - 2011" - }, - { - "Code": "71141-0006", - "Content": "Investitionsausgaben der ?ffentlichen Haushalte:\nBundesl?nder, Jahre, K?rperschaftsgruppen, Art der\nInvestitionsausgaben", - "Time": "1984 - 2011" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/catalogue6/api/catalogue/tables-5b59e0.json b/tests/testthat/catalogue6/api/catalogue/tables-5b59e0.json new file mode 100644 index 0000000..e627dd3 --- /dev/null +++ b/tests/testthat/catalogue6/api/catalogue/tables-5b59e0.json @@ -0,0 +1,54 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "selection": "711*", + "area": "Alle", + "searchcriterion": "Code", + "sortcriterion": "Code", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "71141-0001", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Ausgaben): Deutschland, Jahre, Körperschaftsgruppen,\nAusgabearten", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0002", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Einnahmen): Deutschland, Jahre, Körperschaftsgruppen,\nEinnahmearten", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0003", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Finanzierungssaldo, Besondere Finanzierungsvorgänge):\nDeutschland, Jahre, Körperschaftsgruppen", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0004", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Baumaßnahmen):\nDeutschland, Jahre, Körperschaftsgruppen, Aufgabenbereiche", + "Time": "1992 - 2011" + }, + { + "Code": "71141-0005", + "Content": "Investitionsausgaben der öffentlichen Haushalte:\nDeutschland, Jahre, Körperschaftsgruppen, Art der\nInvestitionsausgaben", + "Time": "1984 - 2011" + }, + { + "Code": "71141-0006", + "Content": "Investitionsausgaben der öffentlichen Haushalte:\nBundesländer, Jahre, Körperschaftsgruppen, Art der\nInvestitionsausgaben", + "Time": "1984 - 2011" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/catalogue6/api/catalogue/tables-d53922.json b/tests/testthat/catalogue6/api/catalogue/tables-d53922.json deleted file mode 100644 index 919e6c6..0000000 --- a/tests/testthat/catalogue6/api/catalogue/tables-d53922.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "711*", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "71141-0001", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Ausgaben): Deutschland, Jahre, K?rperschaftsgruppen,\nAusgabearten", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0002", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Einnahmen): Deutschland, Jahre, K?rperschaftsgruppen,\nEinnahmearten", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0003", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Finanzierungssaldo, Besondere Finanzierungsvorg?nge):\nDeutschland, Jahre, K?rperschaftsgruppen", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0004", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Bauma?nahmen):\nDeutschland, Jahre, K?rperschaftsgruppen, Aufgabenbereiche", - "Time": "1992 - 2011" - }, - { - "Code": "71141-0005", - "Content": "Investitionsausgaben der ?ffentlichen Haushalte:\nDeutschland, Jahre, K?rperschaftsgruppen, Art der\nInvestitionsausgaben", - "Time": "1984 - 2011" - }, - { - "Code": "71141-0006", - "Content": "Investitionsausgaben der ?ffentlichen Haushalte:\nBundesl?nder, Jahre, K?rperschaftsgruppen, Art der\nInvestitionsausgaben", - "Time": "1984 - 2011" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/cube1/api/data/cubefile-f31506.csv b/tests/testthat/cube1/api/data/cubefile-4e2e46.csv similarity index 64% rename from tests/testthat/cube1/api/data/cubefile-f31506.csv rename to tests/testthat/cube1/api/data/cubefile-4e2e46.csv index 142e691..7b8bdaa 100644 --- a/tests/testthat/cube1/api/data/cubefile-f31506.csv +++ b/tests/testthat/cube1/api/data/cubefile-4e2e46.csv @@ -1,4 +1,4 @@ -* Der Benutzer DE5256891X der Benutzergruppe DE0089 hat am 08.05.2023 um 18:00:36 diesen Export angestossen. +* Der Benutzer DE5256891X der Benutzergruppe DE0089 hat am 09.07.2024 um 11:39:16 diesen Export angestossen. K;DQ;FACH-SCHL;GHH-ART;GHM-WERTE-JN;GENESIS-VBD;REGIOSTAT;EU-VBD;"mit Werten" D;47414BJ002;;N;N;N;N K;DQ-ERH;FACH-SCHL @@ -17,2478 +17,2795 @@ D;DG;WZ08-49-01;NOMINAL;2016;99.3;e;;0.0 D;DG;WZ08-49-01;NOMINAL;2017;105.7;e;;0.0 D;DG;WZ08-49-01;NOMINAL;2018;111.6;e;;0.0 D;DG;WZ08-49-01;NOMINAL;2019;115.6;e;;0.0 -D;DG;WZ08-49-01;NOMINAL;2020;96.0;e;;0.0 -D;DG;WZ08-49-01;NOMINAL;2021;119.5;p;;0.0 -D;DG;WZ08-49-01;NOMINAL;2022;148.5;p;;0.0 +D;DG;WZ08-49-01;NOMINAL;2020;95.7;e;;0.0 +D;DG;WZ08-49-01;NOMINAL;2021;118.8;e;;0.0 +D;DG;WZ08-49-01;NOMINAL;2022;146.9;e;;0.0 +D;DG;WZ08-49-01;NOMINAL;2023;134.2;p;;0.0 D;DG;WZ08-49-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-01;REAL;2016;102.0;e;;0.0 D;DG;WZ08-49-01;REAL;2017;103.7;e;;0.0 D;DG;WZ08-49-01;REAL;2018;109.0;e;;0.0 D;DG;WZ08-49-01;REAL;2019;114.5;e;;0.0 -D;DG;WZ08-49-01;REAL;2020;96.4;e;;0.0 -D;DG;WZ08-49-01;REAL;2021;99.0;p;;0.0 -D;DG;WZ08-49-01;REAL;2022;113.3;p;;0.0 +D;DG;WZ08-49-01;REAL;2020;96.2;e;;0.0 +D;DG;WZ08-49-01;REAL;2021;98.7;e;;0.0 +D;DG;WZ08-49-01;REAL;2022;113.0;e;;0.0 +D;DG;WZ08-49-01;REAL;2023;124.1;p;;0.0 D;DG;WZ08-49-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-02;NOMINAL;2016;98.1;e;;0.0 D;DG;WZ08-49-02;NOMINAL;2017;103.1;e;;0.0 D;DG;WZ08-49-02;NOMINAL;2018;105.5;e;;0.0 D;DG;WZ08-49-02;NOMINAL;2019;108.2;e;;0.0 -D;DG;WZ08-49-02;NOMINAL;2020;68.8;e;;0.0 -D;DG;WZ08-49-02;NOMINAL;2021;78.2;p;;0.0 -D;DG;WZ08-49-02;NOMINAL;2022;109.2;p;;0.0 +D;DG;WZ08-49-02;NOMINAL;2020;68.2;e;;0.0 +D;DG;WZ08-49-02;NOMINAL;2021;76.4;e;;0.0 +D;DG;WZ08-49-02;NOMINAL;2022;105.3;e;;0.0 +D;DG;WZ08-49-02;NOMINAL;2023;118.7;p;;0.0 D;DG;WZ08-49-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-02;REAL;2016;99.8;e;;0.0 D;DG;WZ08-49-02;REAL;2017;102.1;e;;0.0 D;DG;WZ08-49-02;REAL;2018;104.1;e;;0.0 D;DG;WZ08-49-02;REAL;2019;107.2;e;;0.0 -D;DG;WZ08-49-02;REAL;2020;76.1;e;;0.0 -D;DG;WZ08-49-02;REAL;2021;83.2;p;;0.0 -D;DG;WZ08-49-02;REAL;2022;110.8;p;;0.0 +D;DG;WZ08-49-02;REAL;2020;75.4;e;;0.0 +D;DG;WZ08-49-02;REAL;2021;82.5;e;;0.0 +D;DG;WZ08-49-02;REAL;2022;109.0;e;;0.0 +D;DG;WZ08-49-02;REAL;2023;132.6;p;;0.0 D;DG;WZ08-49-03;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-03;NOMINAL;2016;100.4;e;;0.0 D;DG;WZ08-49-03;NOMINAL;2017;108.5;e;;0.0 D;DG;WZ08-49-03;NOMINAL;2018;116.5;e;;0.0 D;DG;WZ08-49-03;NOMINAL;2019;120.6;e;;0.0 D;DG;WZ08-49-03;NOMINAL;2020;115.0;e;;0.0 -D;DG;WZ08-49-03;NOMINAL;2021;150.7;p;;0.0 -D;DG;WZ08-49-03;NOMINAL;2022;178.5;p;;0.0 +D;DG;WZ08-49-03;NOMINAL;2021;150.7;e;;0.0 +D;DG;WZ08-49-03;NOMINAL;2022;178.3;e;;0.0 +D;DG;WZ08-49-03;NOMINAL;2023;146.6;p;;0.0 D;DG;WZ08-49-03;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-03;REAL;2016;104.0;e;;0.0 D;DG;WZ08-49-03;REAL;2017;105.6;e;;0.0 D;DG;WZ08-49-03;REAL;2018;113.3;e;;0.0 D;DG;WZ08-49-03;REAL;2019;120.0;e;;0.0 -D;DG;WZ08-49-03;REAL;2020;111.0;e;;0.0 -D;DG;WZ08-49-03;REAL;2021;111.0;p;;0.0 -D;DG;WZ08-49-03;REAL;2022;116.3;p;;0.0 +D;DG;WZ08-49-03;REAL;2020;111.2;e;;0.0 +D;DG;WZ08-49-03;REAL;2021;111.0;e;;0.0 +D;DG;WZ08-49-03;REAL;2022;116.8;e;;0.0 +D;DG;WZ08-49-03;REAL;2023;120.9;p;;0.0 D;DG;WZ08-49-04;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-04;NOMINAL;2016;103.5;e;;0.0 D;DG;WZ08-49-04;NOMINAL;2017;107.9;e;;0.0 D;DG;WZ08-49-04;NOMINAL;2018;114.3;e;;0.0 D;DG;WZ08-49-04;NOMINAL;2019;117.8;e;;0.0 D;DG;WZ08-49-04;NOMINAL;2020;94.0;e;;0.0 -D;DG;WZ08-49-04;NOMINAL;2021;102.3;p;;0.0 -D;DG;WZ08-49-04;NOMINAL;2022;129.4;p;;0.0 +D;DG;WZ08-49-04;NOMINAL;2021;102.3;e;;0.0 +D;DG;WZ08-49-04;NOMINAL;2022;129.5;e;;0.0 +D;DG;WZ08-49-04;NOMINAL;2023;148.3;p;;0.0 D;DG;WZ08-49-04;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-04;REAL;2016;103.5;e;;0.0 D;DG;WZ08-49-04;REAL;2017;106.6;e;;0.0 D;DG;WZ08-49-04;REAL;2018;111.2;e;;0.0 D;DG;WZ08-49-04;REAL;2019;113.4;e;;0.0 D;DG;WZ08-49-04;REAL;2020;94.9;e;;0.0 -D;DG;WZ08-49-04;REAL;2021;103.6;p;;0.0 -D;DG;WZ08-49-04;REAL;2022;133.3;p;;0.0 +D;DG;WZ08-49-04;REAL;2021;103.6;e;;0.0 +D;DG;WZ08-49-04;REAL;2022;133.5;e;;0.0 +D;DG;WZ08-49-04;REAL;2023;146.5;p;;0.0 D;DG;WZ08-49-05;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-05;NOMINAL;2016;93.8;e;;0.0 D;DG;WZ08-49-05;NOMINAL;2017;106.0;e;;0.0 D;DG;WZ08-49-05;NOMINAL;2018;116.6;e;;0.0 D;DG;WZ08-49-05;NOMINAL;2019;122.2;e;;0.0 D;DG;WZ08-49-05;NOMINAL;2020;109.7;e;;0.0 -D;DG;WZ08-49-05;NOMINAL;2021;173.6;p;;0.0 -D;DG;WZ08-49-05;NOMINAL;2022;211.8;p;;0.0 +D;DG;WZ08-49-05;NOMINAL;2021;173.6;e;;0.0 +D;DG;WZ08-49-05;NOMINAL;2022;211.4;e;;0.0 +D;DG;WZ08-49-05;NOMINAL;2023;138.6;p;;0.0 D;DG;WZ08-49-05;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-05;REAL;2016;101.6;e;;0.0 D;DG;WZ08-49-05;REAL;2017;98.6;e;;0.0 D;DG;WZ08-49-05;REAL;2018;111.7;e;;0.0 D;DG;WZ08-49-05;REAL;2019;128.4;e;;0.0 -D;DG;WZ08-49-05;REAL;2020;109.8;e;;0.0 -D;DG;WZ08-49-05;REAL;2021;93.7;p;;0.0 -D;DG;WZ08-49-05;REAL;2022;104.3;p;;0.0 +D;DG;WZ08-49-05;REAL;2020;110.1;e;;0.0 +D;DG;WZ08-49-05;REAL;2021;93.7;e;;0.0 +D;DG;WZ08-49-05;REAL;2022;104.2;e;;0.0 +D;DG;WZ08-49-05;REAL;2023;124.3;p;;0.0 D;DG;WZ08-49-06;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-06;NOMINAL;2016;104.8;e;;0.0 D;DG;WZ08-49-06;NOMINAL;2017;110.2;e;;0.0 D;DG;WZ08-49-06;NOMINAL;2018;116.5;e;;0.0 D;DG;WZ08-49-06;NOMINAL;2019;119.5;e;;0.0 D;DG;WZ08-49-06;NOMINAL;2020;118.6;e;;0.0 -D;DG;WZ08-49-06;NOMINAL;2021;135.0;p;;0.0 -D;DG;WZ08-49-06;NOMINAL;2022;155.9;p;;0.0 +D;DG;WZ08-49-06;NOMINAL;2021;135.0;e;;0.0 +D;DG;WZ08-49-06;NOMINAL;2022;155.9;e;;0.0 +D;DG;WZ08-49-06;NOMINAL;2023;152.0;p;;0.0 D;DG;WZ08-49-06;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-06;REAL;2016;105.7;e;;0.0 D;DG;WZ08-49-06;REAL;2017;110.4;e;;0.0 D;DG;WZ08-49-06;REAL;2018;114.5;e;;0.0 D;DG;WZ08-49-06;REAL;2019;114.1;e;;0.0 D;DG;WZ08-49-06;REAL;2020;111.9;e;;0.0 -D;DG;WZ08-49-06;REAL;2021;123.1;p;;0.0 -D;DG;WZ08-49-06;REAL;2022;124.7;p;;0.0 +D;DG;WZ08-49-06;REAL;2021;123.1;e;;0.0 +D;DG;WZ08-49-06;REAL;2022;125.6;e;;0.0 +D;DG;WZ08-49-06;REAL;2023;118.6;p;;0.0 D;DG;WZ08-49-07;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-07;NOMINAL;2016;100.2;e;;0.0 D;DG;WZ08-49-07;NOMINAL;2017;108.8;e;;0.0 D;DG;WZ08-49-07;NOMINAL;2018;117.0;e;;0.0 D;DG;WZ08-49-07;NOMINAL;2019;121.6;e;;0.0 D;DG;WZ08-49-07;NOMINAL;2020;116.0;e;;0.0 -D;DG;WZ08-49-07;NOMINAL;2021;154.1;p;;0.0 -D;DG;WZ08-49-07;NOMINAL;2022;184.0;p;;0.0 +D;DG;WZ08-49-07;NOMINAL;2021;154.1;e;;0.0 +D;DG;WZ08-49-07;NOMINAL;2022;183.8;e;;0.0 +D;DG;WZ08-49-07;NOMINAL;2023;147.7;p;;0.0 D;DG;WZ08-49-07;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-07;REAL;2016;104.3;e;;0.0 D;DG;WZ08-49-07;REAL;2017;105.6;e;;0.0 D;DG;WZ08-49-07;REAL;2018;113.8;e;;0.0 D;DG;WZ08-49-07;REAL;2019;121.4;e;;0.0 -D;DG;WZ08-49-07;REAL;2020;112.2;e;;0.0 -D;DG;WZ08-49-07;REAL;2021;111.2;p;;0.0 -D;DG;WZ08-49-07;REAL;2022;116.6;p;;0.0 +D;DG;WZ08-49-07;REAL;2020;112.3;e;;0.0 +D;DG;WZ08-49-07;REAL;2021;111.2;e;;0.0 +D;DG;WZ08-49-07;REAL;2022;117.2;e;;0.0 +D;DG;WZ08-49-07;REAL;2023;122.3;p;;0.0 D;DG;WZ08-49-08;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49-08;NOMINAL;2016;102.5;e;;0.0 D;DG;WZ08-49-08;NOMINAL;2017;105.1;e;;0.0 D;DG;WZ08-49-08;NOMINAL;2018;109.6;e;;0.0 D;DG;WZ08-49-08;NOMINAL;2019;114.3;e;;0.0 D;DG;WZ08-49-08;NOMINAL;2020;105.5;e;;0.0 -D;DG;WZ08-49-08;NOMINAL;2021;112.4;p;;0.0 -D;DG;WZ08-49-08;NOMINAL;2022;128.0;p;;0.0 +D;DG;WZ08-49-08;NOMINAL;2021;112.4;e;;0.0 +D;DG;WZ08-49-08;NOMINAL;2022;128.0;e;;0.0 +D;DG;WZ08-49-08;NOMINAL;2023;134.5;p;;0.0 D;DG;WZ08-49-08;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49-08;REAL;2016;103.3;e;;0.0 D;DG;WZ08-49-08;REAL;2017;104.5;e;;0.0 D;DG;WZ08-49-08;REAL;2018;106.7;e;;0.0 D;DG;WZ08-49-08;REAL;2019;109.0;e;;0.0 D;DG;WZ08-49-08;REAL;2020;106.3;e;;0.0 -D;DG;WZ08-49-08;REAL;2021;112.1;p;;0.0 -D;DG;WZ08-49-08;REAL;2022;118.9;p;;0.0 +D;DG;WZ08-49-08;REAL;2021;112.1;e;;0.0 +D;DG;WZ08-49-08;REAL;2022;119.5;e;;0.0 +D;DG;WZ08-49-08;REAL;2023;125.3;p;;0.0 D;DG;WZ08-491;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-491;NOMINAL;2016;106.0;e;;0.0 D;DG;WZ08-491;NOMINAL;2017;110.7;e;;0.0 D;DG;WZ08-491;NOMINAL;2018;118.6;e;;0.0 D;DG;WZ08-491;NOMINAL;2019;128.7;e;;0.0 D;DG;WZ08-491;NOMINAL;2020;78.2;e;;0.0 -D;DG;WZ08-491;NOMINAL;2021;83.0;p;;0.0 -D;DG;WZ08-491;NOMINAL;2022;137.8;p;;0.0 +D;DG;WZ08-491;NOMINAL;2021;83.0;e;;0.0 +D;DG;WZ08-491;NOMINAL;2022;137.8;e;;0.0 +D;DG;WZ08-491;NOMINAL;2023;165.9;p;;0.0 D;DG;WZ08-491;REAL;2015;100.0;e;;0.0 D;DG;WZ08-491;REAL;2016;107.0;e;;0.0 D;DG;WZ08-491;REAL;2017;108.9;e;;0.0 D;DG;WZ08-491;REAL;2018;114.7;e;;0.0 D;DG;WZ08-491;REAL;2019;124.4;e;;0.0 D;DG;WZ08-491;REAL;2020;88.7;e;;0.0 -D;DG;WZ08-491;REAL;2021;95.6;p;;0.0 -D;DG;WZ08-491;REAL;2022;162.5;p;;0.0 +D;DG;WZ08-491;REAL;2021;95.6;e;;0.0 +D;DG;WZ08-491;REAL;2022;162.5;e;;0.0 +D;DG;WZ08-491;REAL;2023;204.2;p;;0.0 D;DG;WZ08-492;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-492;NOMINAL;2016;101.8;e;;0.0 D;DG;WZ08-492;NOMINAL;2017;106.0;e;;0.0 D;DG;WZ08-492;NOMINAL;2018;111.3;e;;0.0 D;DG;WZ08-492;NOMINAL;2019;110.1;e;;0.0 D;DG;WZ08-492;NOMINAL;2020;105.0;e;;0.0 -D;DG;WZ08-492;NOMINAL;2021;115.8;p;;0.0 -D;DG;WZ08-492;NOMINAL;2022;123.5;p;;0.0 +D;DG;WZ08-492;NOMINAL;2021;115.8;e;;0.0 +D;DG;WZ08-492;NOMINAL;2022;123.8;e;;0.0 +D;DG;WZ08-492;NOMINAL;2023;136.1;p;;0.0 D;DG;WZ08-492;REAL;2015;100.0;e;;0.0 D;DG;WZ08-492;REAL;2016;101.1;e;;0.0 D;DG;WZ08-492;REAL;2017;105.0;e;;0.0 D;DG;WZ08-492;REAL;2018;108.7;e;;0.0 D;DG;WZ08-492;REAL;2019;105.8;e;;0.0 D;DG;WZ08-492;REAL;2020;99.2;e;;0.0 -D;DG;WZ08-492;REAL;2021;109.1;p;;0.0 -D;DG;WZ08-492;REAL;2022;112.9;p;;0.0 +D;DG;WZ08-492;REAL;2021;109.1;e;;0.0 +D;DG;WZ08-492;REAL;2022;113.3;e;;0.0 +D;DG;WZ08-492;REAL;2023;106.3;p;;0.0 D;DG;WZ08-4931;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-4931;NOMINAL;2016;102.5;e;;0.0 D;DG;WZ08-4931;NOMINAL;2017;102.6;e;;0.0 D;DG;WZ08-4931;NOMINAL;2018;105.1;e;;0.0 D;DG;WZ08-4931;NOMINAL;2019;107.8;e;;0.0 D;DG;WZ08-4931;NOMINAL;2020;97.3;e;;0.0 -D;DG;WZ08-4931;NOMINAL;2021;104.0;p;;0.0 -D;DG;WZ08-4931;NOMINAL;2022;114.3;p;;0.0 +D;DG;WZ08-4931;NOMINAL;2021;104.0;e;;0.0 +D;DG;WZ08-4931;NOMINAL;2022;114.3;e;;0.0 +D;DG;WZ08-4931;NOMINAL;2023;124.8;p;;0.0 D;DG;WZ08-4932;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-4932;NOMINAL;2016;103.8;e;;0.0 D;DG;WZ08-4932;NOMINAL;2017;109.9;e;;0.0 D;DG;WZ08-4932;NOMINAL;2018;113.7;e;;0.0 D;DG;WZ08-4932;NOMINAL;2019;115.5;e;;0.0 D;DG;WZ08-4932;NOMINAL;2020;84.0;e;;0.0 -D;DG;WZ08-4932;NOMINAL;2021;86.6;p;;0.0 -D;DG;WZ08-4932;NOMINAL;2022;109.4;p;;0.0 +D;DG;WZ08-4932;NOMINAL;2021;86.6;e;;0.0 +D;DG;WZ08-4932;NOMINAL;2022;109.4;e;;0.0 +D;DG;WZ08-4932;NOMINAL;2023;129.0;p;;0.0 D;DG;WZ08-4939;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-4939;NOMINAL;2016;94.9;e;;0.0 D;DG;WZ08-4939;NOMINAL;2017;89.1;e;;0.0 D;DG;WZ08-4939;NOMINAL;2018;88.0;e;;0.0 D;DG;WZ08-4939;NOMINAL;2019;92.2;e;;0.0 D;DG;WZ08-4939;NOMINAL;2020;65.6;e;;0.0 -D;DG;WZ08-4939;NOMINAL;2021;68.9;p;;0.0 -D;DG;WZ08-4939;NOMINAL;2022;87.8;p;;0.0 +D;DG;WZ08-4939;NOMINAL;2021;68.9;e;;0.0 +D;DG;WZ08-4939;NOMINAL;2022;88.0;e;;0.0 +D;DG;WZ08-4939;NOMINAL;2023;100.7;p;;0.0 D;DG;WZ08-493;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-493;NOMINAL;2016;101.5;e;;0.0 D;DG;WZ08-493;NOMINAL;2017;101.3;e;;0.0 D;DG;WZ08-493;NOMINAL;2018;103.4;e;;0.0 D;DG;WZ08-493;NOMINAL;2019;106.3;e;;0.0 D;DG;WZ08-493;NOMINAL;2020;90.4;e;;0.0 -D;DG;WZ08-493;NOMINAL;2021;96.0;p;;0.0 -D;DG;WZ08-493;NOMINAL;2022;109.3;p;;0.0 +D;DG;WZ08-493;NOMINAL;2021;96.0;e;;0.0 +D;DG;WZ08-493;NOMINAL;2022;109.4;e;;0.0 +D;DG;WZ08-493;NOMINAL;2023;121.4;p;;0.0 D;DG;WZ08-493;REAL;2015;100.0;e;;0.0 D;DG;WZ08-493;REAL;2016;102.4;e;;0.0 D;DG;WZ08-493;REAL;2017;99.8;e;;0.0 D;DG;WZ08-493;REAL;2018;100.0;e;;0.0 D;DG;WZ08-493;REAL;2019;102.7;e;;0.0 D;DG;WZ08-493;REAL;2020;102.8;e;;0.0 -D;DG;WZ08-493;REAL;2021;110.9;p;;0.0 -D;DG;WZ08-493;REAL;2022;129.0;p;;0.0 +D;DG;WZ08-493;REAL;2021;110.9;e;;0.0 +D;DG;WZ08-493;REAL;2022;129.0;e;;0.0 +D;DG;WZ08-493;REAL;2023;149.7;p;;0.0 D;DG;WZ08-4941;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-4941;NOMINAL;2016;103.4;e;;0.0 D;DG;WZ08-4941;NOMINAL;2017;108.5;e;;0.0 D;DG;WZ08-4941;NOMINAL;2018;114.1;e;;0.0 D;DG;WZ08-4941;NOMINAL;2019;117.6;e;;0.0 D;DG;WZ08-4941;NOMINAL;2020;115.2;e;;0.0 -D;DG;WZ08-4941;NOMINAL;2021;124.6;p;;0.0 -D;DG;WZ08-4941;NOMINAL;2022;141.1;p;;0.0 +D;DG;WZ08-4941;NOMINAL;2021;124.6;e;;0.0 +D;DG;WZ08-4941;NOMINAL;2022;141.0;e;;0.0 +D;DG;WZ08-4941;NOMINAL;2023;144.5;p;;0.0 D;DG;WZ08-4942;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-4942;NOMINAL;2016;102.3;e;;0.0 D;DG;WZ08-4942;NOMINAL;2017;105.7;e;;0.0 D;DG;WZ08-4942;NOMINAL;2018;106.8;e;;0.0 D;DG;WZ08-4942;NOMINAL;2019;111.7;e;;0.0 D;DG;WZ08-4942;NOMINAL;2020;112.8;e;;0.0 -D;DG;WZ08-4942;NOMINAL;2021;124.8;p;;0.0 -D;DG;WZ08-4942;NOMINAL;2022;140.7;p;;0.0 +D;DG;WZ08-4942;NOMINAL;2021;124.8;e;;0.0 +D;DG;WZ08-4942;NOMINAL;2022;140.7;e;;0.0 +D;DG;WZ08-4942;NOMINAL;2023;143.5;p;;0.0 D;DG;WZ08-494;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-494;NOMINAL;2016;103.4;e;;0.0 D;DG;WZ08-494;NOMINAL;2017;108.4;e;;0.0 D;DG;WZ08-494;NOMINAL;2018;113.9;e;;0.0 D;DG;WZ08-494;NOMINAL;2019;117.5;e;;0.0 D;DG;WZ08-494;NOMINAL;2020;115.1;e;;0.0 -D;DG;WZ08-494;NOMINAL;2021;124.6;p;;0.0 -D;DG;WZ08-494;NOMINAL;2022;141.1;p;;0.0 +D;DG;WZ08-494;NOMINAL;2021;124.6;e;;0.0 +D;DG;WZ08-494;NOMINAL;2022;141.1;e;;0.0 +D;DG;WZ08-494;NOMINAL;2023;144.5;p;;0.0 D;DG;WZ08-494;REAL;2015;100.0;e;;0.0 D;DG;WZ08-494;REAL;2016;104.1;e;;0.0 D;DG;WZ08-494;REAL;2017;108.5;e;;0.0 D;DG;WZ08-494;REAL;2018;111.3;e;;0.0 D;DG;WZ08-494;REAL;2019;111.1;e;;0.0 D;DG;WZ08-494;REAL;2020;108.5;e;;0.0 -D;DG;WZ08-494;REAL;2021;114.3;p;;0.0 -D;DG;WZ08-494;REAL;2022;113.2;p;;0.0 +D;DG;WZ08-494;REAL;2021;114.3;e;;0.0 +D;DG;WZ08-494;REAL;2022;114.2;e;;0.0 +D;DG;WZ08-494;REAL;2023;110.8;p;;0.0 D;DG;WZ08-495;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-495;NOMINAL;2016;101.2;e;;0.0 D;DG;WZ08-495;NOMINAL;2017;97.8;e;;0.0 D;DG;WZ08-495;NOMINAL;2018;109.7;e;;0.0 D;DG;WZ08-495;NOMINAL;2019;141.8;e;;0.0 D;DG;WZ08-495;NOMINAL;2020;116.0;e;;0.0 -D;DG;WZ08-495;NOMINAL;2021;107.0;p;;0.0 -D;DG;WZ08-495;NOMINAL;2022;129.7;p;;0.0 +D;DG;WZ08-495;NOMINAL;2021;107.0;e;;0.0 +D;DG;WZ08-495;NOMINAL;2022;129.7;e;;0.0 +D;DG;WZ08-495;NOMINAL;2023;126.5;p;;0.0 D;DG;WZ08-495;REAL;2015;100.0;e;;0.0 D;DG;WZ08-495;REAL;2016;101.9;e;;0.0 D;DG;WZ08-495;REAL;2017;97.9;e;;0.0 D;DG;WZ08-495;REAL;2018;107.2;e;;0.0 D;DG;WZ08-495;REAL;2019;134.2;e;;0.0 D;DG;WZ08-495;REAL;2020;109.3;e;;0.0 -D;DG;WZ08-495;REAL;2021;98.2;p;;0.0 -D;DG;WZ08-495;REAL;2022;104.0;p;;0.0 +D;DG;WZ08-495;REAL;2021;98.2;e;;0.0 +D;DG;WZ08-495;REAL;2022;104.8;e;;0.0 +D;DG;WZ08-495;REAL;2023;97.1;p;;0.0 D;DG;WZ08-49;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-49;NOMINAL;2016;102.7;e;;0.0 D;DG;WZ08-49;NOMINAL;2017;105.5;e;;0.0 D;DG;WZ08-49;NOMINAL;2018;110.2;e;;0.0 D;DG;WZ08-49;NOMINAL;2019;114.8;e;;0.0 D;DG;WZ08-49;NOMINAL;2020;103.9;e;;0.0 -D;DG;WZ08-49;NOMINAL;2021;111.1;p;;0.0 -D;DG;WZ08-49;NOMINAL;2022;128.2;p;;0.0 +D;DG;WZ08-49;NOMINAL;2021;111.1;e;;0.0 +D;DG;WZ08-49;NOMINAL;2022;128.2;e;;0.0 +D;DG;WZ08-49;NOMINAL;2023;136.3;p;;0.0 D;DG;WZ08-49;REAL;2015;100.0;e;;0.0 D;DG;WZ08-49;REAL;2016;103.4;e;;0.0 D;DG;WZ08-49;REAL;2017;104.8;e;;0.0 D;DG;WZ08-49;REAL;2018;107.3;e;;0.0 D;DG;WZ08-49;REAL;2019;109.6;e;;0.0 D;DG;WZ08-49;REAL;2020;104.8;e;;0.0 -D;DG;WZ08-49;REAL;2021;111.0;p;;0.0 -D;DG;WZ08-49;REAL;2022;120.8;p;;0.0 +D;DG;WZ08-49;REAL;2021;111.0;e;;0.0 +D;DG;WZ08-49;REAL;2022;121.4;e;;0.0 +D;DG;WZ08-49;REAL;2023;128.2;p;;0.0 D;DG;WZ08-50-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-50-01;NOMINAL;2016;89.5;e;;0.0 D;DG;WZ08-50-01;NOMINAL;2017;102.8;e;;0.0 D;DG;WZ08-50-01;NOMINAL;2018;113.4;e;;0.0 D;DG;WZ08-50-01;NOMINAL;2019;120.0;e;;0.0 -D;DG;WZ08-50-01;NOMINAL;2020;102.1;e;;0.0 -D;DG;WZ08-50-01;NOMINAL;2021;171.5;p;;0.0 -D;DG;WZ08-50-01;NOMINAL;2022;223.1;p;;0.0 +D;DG;WZ08-50-01;NOMINAL;2020;100.9;e;;0.0 +D;DG;WZ08-50-01;NOMINAL;2021;168.2;e;;0.0 +D;DG;WZ08-50-01;NOMINAL;2022;215.2;e;;0.0 +D;DG;WZ08-50-01;NOMINAL;2023;137.1;p;;0.0 D;DG;WZ08-50-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-50-01;REAL;2016;98.3;e;;0.0 D;DG;WZ08-50-01;REAL;2017;94.2;e;;0.0 D;DG;WZ08-50-01;REAL;2018;107.9;e;;0.0 D;DG;WZ08-50-01;REAL;2019;127.5;e;;0.0 -D;DG;WZ08-50-01;REAL;2020;102.9;e;;0.0 -D;DG;WZ08-50-01;REAL;2021;82.8;p;;0.0 -D;DG;WZ08-50-01;REAL;2022;99.7;p;;0.0 +D;DG;WZ08-50-01;REAL;2020;102.0;e;;0.0 +D;DG;WZ08-50-01;REAL;2021;81.4;e;;0.0 +D;DG;WZ08-50-01;REAL;2022;96.1;e;;0.0 +D;DG;WZ08-50-01;REAL;2023;125.7;p;;0.0 D;DG;WZ08-50-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-50-02;NOMINAL;2016;76.3;e;;0.0 D;DG;WZ08-50-02;NOMINAL;2017;86.2;e;;0.0 D;DG;WZ08-50-02;NOMINAL;2018;90.6;e;;0.0 D;DG;WZ08-50-02;NOMINAL;2019;106.0;e;;0.0 -D;DG;WZ08-50-02;NOMINAL;2020;51.6;e;;0.0 -D;DG;WZ08-50-02;NOMINAL;2021;80.8;p;;0.0 -D;DG;WZ08-50-02;NOMINAL;2022;183.3;p;;0.0 +D;DG;WZ08-50-02;NOMINAL;2020;39.8;e;;0.0 +D;DG;WZ08-50-02;NOMINAL;2021;49.1;e;;0.0 +D;DG;WZ08-50-02;NOMINAL;2022;111.5;e;;0.0 +D;DG;WZ08-50-02;NOMINAL;2023;146.8;p;;0.0 D;DG;WZ08-50-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-50-02;REAL;2016;81.6;e;;0.0 D;DG;WZ08-50-02;REAL;2017;79.5;e;;0.0 D;DG;WZ08-50-02;REAL;2018;85.9;e;;0.0 D;DG;WZ08-50-02;REAL;2019;109.0;e;;0.0 -D;DG;WZ08-50-02;REAL;2020;50.4;e;;0.0 -D;DG;WZ08-50-02;REAL;2021;39.2;p;;0.0 -D;DG;WZ08-50-02;REAL;2022;90.0;p;;0.0 +D;DG;WZ08-50-02;REAL;2020;38.3;e;;0.0 +D;DG;WZ08-50-02;REAL;2021;25.9;e;;0.0 +D;DG;WZ08-50-02;REAL;2022;56.8;e;;0.0 +D;DG;WZ08-50-02;REAL;2023;132.1;p;;0.0 D;DG;WZ08-501;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-501;NOMINAL;2016;71.5;e;;0.0 D;DG;WZ08-501;NOMINAL;2017;80.0;e;;0.0 D;DG;WZ08-501;NOMINAL;2018;86.7;e;;0.0 D;DG;WZ08-501;NOMINAL;2019;106.2;e;;0.0 -D;DG;WZ08-501;NOMINAL;2020;50.6;e;;0.0 -D;DG;WZ08-501;NOMINAL;2021;82.1;p;;0.0 -D;DG;WZ08-501;NOMINAL;2022;191.6;p;;0.0 +D;DG;WZ08-501;NOMINAL;2020;36.9;e;;0.0 +D;DG;WZ08-501;NOMINAL;2021;45.1;e;;0.0 +D;DG;WZ08-501;NOMINAL;2022;107.8;e;;0.0 +D;DG;WZ08-501;NOMINAL;2023;144.9;p;;0.0 D;DG;WZ08-501;REAL;2015;100.0;e;;0.0 D;DG;WZ08-501;REAL;2016;78.5;e;;0.0 D;DG;WZ08-501;REAL;2017;73.5;e;;0.0 D;DG;WZ08-501;REAL;2018;82.7;e;;0.0 D;DG;WZ08-501;REAL;2019;111.4;e;;0.0 -D;DG;WZ08-501;REAL;2020;50.5;e;;0.0 -D;DG;WZ08-501;REAL;2021;35.4;p;;0.0 -D;DG;WZ08-501;REAL;2022;87.9;p;;0.0 +D;DG;WZ08-501;REAL;2020;36.4;e;;0.0 +D;DG;WZ08-501;REAL;2021;20.0;e;;0.0 +D;DG;WZ08-501;REAL;2022;49.2;e;;0.0 +D;DG;WZ08-501;REAL;2023;134.9;p;;0.0 D;DG;WZ08-502;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-502;NOMINAL;2016;91.6;e;;0.0 D;DG;WZ08-502;NOMINAL;2017;105.9;e;;0.0 D;DG;WZ08-502;NOMINAL;2018;118.1;e;;0.0 D;DG;WZ08-502;NOMINAL;2019;125.7;e;;0.0 D;DG;WZ08-502;NOMINAL;2020;111.1;e;;0.0 -D;DG;WZ08-502;NOMINAL;2021;190.2;p;;0.0 -D;DG;WZ08-502;NOMINAL;2022;237.0;p;;0.0 +D;DG;WZ08-502;NOMINAL;2021;190.2;e;;0.0 +D;DG;WZ08-502;NOMINAL;2022;236.4;e;;0.0 +D;DG;WZ08-502;NOMINAL;2023;139.4;p;;0.0 D;DG;WZ08-502;REAL;2015;100.0;e;;0.0 D;DG;WZ08-502;REAL;2016;101.7;e;;0.0 D;DG;WZ08-502;REAL;2017;96.8;e;;0.0 D;DG;WZ08-502;REAL;2018;112.5;e;;0.0 D;DG;WZ08-502;REAL;2019;134.6;e;;0.0 -D;DG;WZ08-502;REAL;2020;112.7;e;;0.0 -D;DG;WZ08-502;REAL;2021;89.5;p;;0.0 -D;DG;WZ08-502;REAL;2022;101.9;p;;0.0 +D;DG;WZ08-502;REAL;2020;113.2;e;;0.0 +D;DG;WZ08-502;REAL;2021;89.5;e;;0.0 +D;DG;WZ08-502;REAL;2022;101.7;e;;0.0 +D;DG;WZ08-502;REAL;2023;129.3;p;;0.0 D;DG;WZ08-503;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-503;NOMINAL;2016;104.6;e;;0.0 D;DG;WZ08-503;NOMINAL;2017;123.3;e;;0.0 D;DG;WZ08-503;NOMINAL;2018;114.2;e;;0.0 D;DG;WZ08-503;NOMINAL;2019;104.9;e;;0.0 D;DG;WZ08-503;NOMINAL;2020;57.4;e;;0.0 -D;DG;WZ08-503;NOMINAL;2021;73.0;p;;0.0 -D;DG;WZ08-503;NOMINAL;2022;133.9;p;;0.0 +D;DG;WZ08-503;NOMINAL;2021;73.0;e;;0.0 +D;DG;WZ08-503;NOMINAL;2022;133.9;e;;0.0 +D;DG;WZ08-503;NOMINAL;2023;158.7;p;;0.0 D;DG;WZ08-503;REAL;2015;100.0;e;;0.0 D;DG;WZ08-503;REAL;2016;100.5;e;;0.0 D;DG;WZ08-503;REAL;2017;115.6;e;;0.0 D;DG;WZ08-503;REAL;2018;105.1;e;;0.0 D;DG;WZ08-503;REAL;2019;94.3;e;;0.0 D;DG;WZ08-503;REAL;2020;49.8;e;;0.0 -D;DG;WZ08-503;REAL;2021;61.9;p;;0.0 -D;DG;WZ08-503;REAL;2022;102.7;p;;0.0 +D;DG;WZ08-503;REAL;2021;61.9;e;;0.0 +D;DG;WZ08-503;REAL;2022;102.7;e;;0.0 +D;DG;WZ08-503;REAL;2023;114.9;p;;0.0 D;DG;WZ08-504;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-504;NOMINAL;2016;83.7;e;;0.0 D;DG;WZ08-504;NOMINAL;2017;87.9;e;;0.0 D;DG;WZ08-504;NOMINAL;2018;89.9;e;;0.0 D;DG;WZ08-504;NOMINAL;2019;69.9;e;;0.0 D;DG;WZ08-504;NOMINAL;2020;66.9;e;;0.0 -D;DG;WZ08-504;NOMINAL;2021;76.5;p;;0.0 -D;DG;WZ08-504;NOMINAL;2022;109.4;p;;0.0 +D;DG;WZ08-504;NOMINAL;2021;76.5;e;;0.0 +D;DG;WZ08-504;NOMINAL;2022;109.4;e;;0.0 +D;DG;WZ08-504;NOMINAL;2023;93.3;p;;0.0 D;DG;WZ08-504;REAL;2015;100.0;e;;0.0 D;DG;WZ08-504;REAL;2016;81.6;e;;0.0 D;DG;WZ08-504;REAL;2017;83.6;e;;0.0 D;DG;WZ08-504;REAL;2018;83.7;e;;0.0 D;DG;WZ08-504;REAL;2019;63.7;e;;0.0 D;DG;WZ08-504;REAL;2020;58.8;e;;0.0 -D;DG;WZ08-504;REAL;2021;65.8;p;;0.0 -D;DG;WZ08-504;REAL;2022;86.0;p;;0.0 +D;DG;WZ08-504;REAL;2021;65.8;e;;0.0 +D;DG;WZ08-504;REAL;2022;86.0;e;;0.0 +D;DG;WZ08-504;REAL;2023;68.1;p;;0.0 D;DG;WZ08-50;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-50;NOMINAL;2016;89.5;e;;0.0 D;DG;WZ08-50;NOMINAL;2017;102.8;e;;0.0 D;DG;WZ08-50;NOMINAL;2018;113.4;e;;0.0 D;DG;WZ08-50;NOMINAL;2019;120.0;e;;0.0 -D;DG;WZ08-50;NOMINAL;2020;102.1;e;;0.0 -D;DG;WZ08-50;NOMINAL;2021;171.5;p;;0.0 -D;DG;WZ08-50;NOMINAL;2022;223.1;p;;0.0 +D;DG;WZ08-50;NOMINAL;2020;100.9;e;;0.0 +D;DG;WZ08-50;NOMINAL;2021;168.2;e;;0.0 +D;DG;WZ08-50;NOMINAL;2022;215.2;e;;0.0 +D;DG;WZ08-50;NOMINAL;2023;137.1;p;;0.0 D;DG;WZ08-50;REAL;2015;100.0;e;;0.0 D;DG;WZ08-50;REAL;2016;98.3;e;;0.0 D;DG;WZ08-50;REAL;2017;94.2;e;;0.0 D;DG;WZ08-50;REAL;2018;107.9;e;;0.0 D;DG;WZ08-50;REAL;2019;127.5;e;;0.0 -D;DG;WZ08-50;REAL;2020;102.9;e;;0.0 -D;DG;WZ08-50;REAL;2021;82.8;p;;0.0 -D;DG;WZ08-50;REAL;2022;99.7;p;;0.0 +D;DG;WZ08-50;REAL;2020;102.0;e;;0.0 +D;DG;WZ08-50;REAL;2021;81.4;e;;0.0 +D;DG;WZ08-50;REAL;2022;96.1;e;;0.0 +D;DG;WZ08-50;REAL;2023;125.7;p;;0.0 D;DG;WZ08-51-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-51-01;NOMINAL;2016;98.7;e;;0.0 D;DG;WZ08-51-01;NOMINAL;2017;110.9;e;;0.0 D;DG;WZ08-51-01;NOMINAL;2018;114.6;e;;0.0 D;DG;WZ08-51-01;NOMINAL;2019;112.5;e;;0.0 D;DG;WZ08-51-01;NOMINAL;2020;54.8;e;;0.0 -D;DG;WZ08-51-01;NOMINAL;2021;82.6;p;;0.0 -D;DG;WZ08-51-01;NOMINAL;2022;129.8;p;;0.0 +D;DG;WZ08-51-01;NOMINAL;2021;82.6;e;;0.0 +D;DG;WZ08-51-01;NOMINAL;2022;129.8;e;;0.0 +D;DG;WZ08-51-01;NOMINAL;2023;121.2;p;;0.0 D;DG;WZ08-51-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-51-01;REAL;2016;101.3;e;;0.0 D;DG;WZ08-51-01;REAL;2017;112.5;e;;0.0 D;DG;WZ08-51-01;REAL;2018;118.1;e;;0.0 D;DG;WZ08-51-01;REAL;2019;116.6;e;;0.0 D;DG;WZ08-51-01;REAL;2020;52.7;e;;0.0 -D;DG;WZ08-51-01;REAL;2021;72.4;p;;0.0 -D;DG;WZ08-51-01;REAL;2022;101.8;p;;0.0 +D;DG;WZ08-51-01;REAL;2021;72.5;e;;0.0 +D;DG;WZ08-51-01;REAL;2022;102.1;e;;0.0 +D;DG;WZ08-51-01;REAL;2023;105.3;p;;0.0 D;DG;WZ08-511;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-511;NOMINAL;2016;94.0;e;;0.0 D;DG;WZ08-511;NOMINAL;2017;106.7;e;;0.0 D;DG;WZ08-511;NOMINAL;2018;107.9;e;;0.0 D;DG;WZ08-511;NOMINAL;2019;106.2;e;;0.0 D;DG;WZ08-511;NOMINAL;2020;32.3;e;;0.0 -D;DG;WZ08-511;NOMINAL;2021;45.9;p;;0.0 -D;DG;WZ08-511;NOMINAL;2022;88.3;p;;0.0 +D;DG;WZ08-511;NOMINAL;2021;45.9;e;;0.0 +D;DG;WZ08-511;NOMINAL;2022;88.3;e;;0.0 +D;DG;WZ08-511;NOMINAL;2023;96.2;p;;0.0 D;DG;WZ08-511;REAL;2015;100.0;e;;0.0 D;DG;WZ08-511;REAL;2016;96.5;e;;0.0 D;DG;WZ08-511;REAL;2017;108.2;e;;0.0 D;DG;WZ08-511;REAL;2018;111.2;e;;0.0 D;DG;WZ08-511;REAL;2019;109.9;e;;0.0 D;DG;WZ08-511;REAL;2020;31.5;e;;0.0 -D;DG;WZ08-511;REAL;2021;40.2;p;;0.0 -D;DG;WZ08-511;REAL;2022;69.2;p;;0.0 +D;DG;WZ08-511;REAL;2021;40.2;e;;0.0 +D;DG;WZ08-511;REAL;2022;69.3;e;;0.0 +D;DG;WZ08-511;REAL;2023;83.7;p;;0.0 D;DG;WZ08-5121;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5121;NOMINAL;2016;119.8;e;;0.0 D;DG;WZ08-5121;NOMINAL;2017;130.1;e;;0.0 D;DG;WZ08-5121;NOMINAL;2018;145.0;e;;0.0 D;DG;WZ08-5121;NOMINAL;2019;141.5;e;;0.0 D;DG;WZ08-5121;NOMINAL;2020;156.8;e;;0.0 -D;DG;WZ08-5121;NOMINAL;2021;249.8;p;;0.0 -D;DG;WZ08-5121;NOMINAL;2022;318.6;p;;0.0 +D;DG;WZ08-5121;NOMINAL;2021;249.8;e;;0.0 +D;DG;WZ08-5121;NOMINAL;2022;318.6;e;;0.0 +D;DG;WZ08-5121;NOMINAL;2023;234.9;p;;0.0 D;DG;WZ08-512;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-512;NOMINAL;2016;119.9;e;;0.0 D;DG;WZ08-512;NOMINAL;2017;130.1;e;;0.0 D;DG;WZ08-512;NOMINAL;2018;145.0;e;;0.0 D;DG;WZ08-512;NOMINAL;2019;141.5;e;;0.0 D;DG;WZ08-512;NOMINAL;2020;156.8;e;;0.0 -D;DG;WZ08-512;NOMINAL;2021;249.8;p;;0.0 -D;DG;WZ08-512;NOMINAL;2022;318.6;p;;0.0 +D;DG;WZ08-512;NOMINAL;2021;249.8;e;;0.0 +D;DG;WZ08-512;NOMINAL;2022;318.6;e;;0.0 +D;DG;WZ08-512;NOMINAL;2023;234.9;p;;0.0 D;DG;WZ08-512;REAL;2015;100.0;e;;0.0 D;DG;WZ08-512;REAL;2016;123.2;e;;0.0 D;DG;WZ08-512;REAL;2017;132.1;e;;0.0 D;DG;WZ08-512;REAL;2018;149.6;e;;0.0 D;DG;WZ08-512;REAL;2019;146.8;e;;0.0 -D;DG;WZ08-512;REAL;2020;148.9;e;;0.0 -D;DG;WZ08-512;REAL;2021;219.3;p;;0.0 -D;DG;WZ08-512;REAL;2022;250.4;p;;0.0 +D;DG;WZ08-512;REAL;2020;149.0;e;;0.0 +D;DG;WZ08-512;REAL;2021;219.3;e;;0.0 +D;DG;WZ08-512;REAL;2022;251.8;e;;0.0 +D;DG;WZ08-512;REAL;2023;203.7;p;;0.0 D;DG;WZ08-51;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-51;NOMINAL;2016;98.7;e;;0.0 D;DG;WZ08-51;NOMINAL;2017;110.9;e;;0.0 D;DG;WZ08-51;NOMINAL;2018;114.6;e;;0.0 D;DG;WZ08-51;NOMINAL;2019;112.5;e;;0.0 D;DG;WZ08-51;NOMINAL;2020;54.8;e;;0.0 -D;DG;WZ08-51;NOMINAL;2021;82.6;p;;0.0 -D;DG;WZ08-51;NOMINAL;2022;129.8;p;;0.0 +D;DG;WZ08-51;NOMINAL;2021;82.6;e;;0.0 +D;DG;WZ08-51;NOMINAL;2022;129.8;e;;0.0 +D;DG;WZ08-51;NOMINAL;2023;121.2;p;;0.0 D;DG;WZ08-51;REAL;2015;100.0;e;;0.0 D;DG;WZ08-51;REAL;2016;101.3;e;;0.0 D;DG;WZ08-51;REAL;2017;112.5;e;;0.0 D;DG;WZ08-51;REAL;2018;118.1;e;;0.0 D;DG;WZ08-51;REAL;2019;116.6;e;;0.0 D;DG;WZ08-51;REAL;2020;52.7;e;;0.0 -D;DG;WZ08-51;REAL;2021;72.4;p;;0.0 -D;DG;WZ08-51;REAL;2022;101.8;p;;0.0 +D;DG;WZ08-51;REAL;2021;72.5;e;;0.0 +D;DG;WZ08-51;REAL;2022;102.1;e;;0.0 +D;DG;WZ08-51;REAL;2023;105.3;p;;0.0 D;DG;WZ08-521;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-521;NOMINAL;2016;105.9;e;;0.0 D;DG;WZ08-521;NOMINAL;2017;136.6;e;;0.0 D;DG;WZ08-521;NOMINAL;2018;133.4;e;;0.0 D;DG;WZ08-521;NOMINAL;2019;143.1;e;;0.0 D;DG;WZ08-521;NOMINAL;2020;143.5;e;;0.0 -D;DG;WZ08-521;NOMINAL;2021;168.4;p;;0.0 -D;DG;WZ08-521;NOMINAL;2022;174.5;p;;0.0 +D;DG;WZ08-521;NOMINAL;2021;168.4;e;;0.0 +D;DG;WZ08-521;NOMINAL;2022;174.6;e;;0.0 +D;DG;WZ08-521;NOMINAL;2023;174.4;p;;0.0 D;DG;WZ08-521;REAL;2015;100.0;e;;0.0 D;DG;WZ08-521;REAL;2016;105.3;e;;0.0 D;DG;WZ08-521;REAL;2017;135.4;e;;0.0 D;DG;WZ08-521;REAL;2018;130.4;e;;0.0 D;DG;WZ08-521;REAL;2019;136.3;e;;0.0 D;DG;WZ08-521;REAL;2020;134.7;e;;0.0 -D;DG;WZ08-521;REAL;2021;154.8;p;;0.0 -D;DG;WZ08-521;REAL;2022;148.7;p;;0.0 +D;DG;WZ08-521;REAL;2021;154.8;e;;0.0 +D;DG;WZ08-521;REAL;2022;149.3;e;;0.0 +D;DG;WZ08-521;REAL;2023;139.4;p;;0.0 D;DG;WZ08-5221;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5221;NOMINAL;2016;103.3;e;;0.0 D;DG;WZ08-5221;NOMINAL;2017;106.5;e;;0.0 D;DG;WZ08-5221;NOMINAL;2018;114.0;e;;0.0 D;DG;WZ08-5221;NOMINAL;2019;117.9;e;;0.0 D;DG;WZ08-5221;NOMINAL;2020;113.1;e;;0.0 -D;DG;WZ08-5221;NOMINAL;2021;115.7;p;;0.0 -D;DG;WZ08-5221;NOMINAL;2022;134.3;p;;0.0 +D;DG;WZ08-5221;NOMINAL;2021;115.7;e;;0.0 +D;DG;WZ08-5221;NOMINAL;2022;133.8;e;;0.0 +D;DG;WZ08-5221;NOMINAL;2023;129.3;p;;0.0 D;DG;WZ08-5222;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5222;NOMINAL;2016;104.2;e;;0.0 D;DG;WZ08-5222;NOMINAL;2017;87.9;e;;0.0 D;DG;WZ08-5222;NOMINAL;2018;87.7;e;;0.0 D;DG;WZ08-5222;NOMINAL;2019;100.0;e;;0.0 D;DG;WZ08-5222;NOMINAL;2020;91.2;e;;0.0 -D;DG;WZ08-5222;NOMINAL;2021;81.9;p;;0.0 -D;DG;WZ08-5222;NOMINAL;2022;111.7;p;;0.0 +D;DG;WZ08-5222;NOMINAL;2021;81.9;e;;0.0 +D;DG;WZ08-5222;NOMINAL;2022;111.7;e;;0.0 +D;DG;WZ08-5222;NOMINAL;2023;88.4;p;;0.0 D;DG;WZ08-5223;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5223;NOMINAL;2016;101.3;e;;0.0 D;DG;WZ08-5223;NOMINAL;2017;106.6;e;;0.0 D;DG;WZ08-5223;NOMINAL;2018;113.6;e;;0.0 D;DG;WZ08-5223;NOMINAL;2019;113.8;e;;0.0 D;DG;WZ08-5223;NOMINAL;2020;67.2;e;;0.0 -D;DG;WZ08-5223;NOMINAL;2021;74.8;p;;0.0 -D;DG;WZ08-5223;NOMINAL;2022;98.8;p;;0.0 +D;DG;WZ08-5223;NOMINAL;2021;74.8;e;;0.0 +D;DG;WZ08-5223;NOMINAL;2022;98.9;e;;0.0 +D;DG;WZ08-5223;NOMINAL;2023;115.1;p;;0.0 D;DG;WZ08-5224;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5224;NOMINAL;2016;104.1;e;;0.0 D;DG;WZ08-5224;NOMINAL;2017;102.2;e;;0.0 D;DG;WZ08-5224;NOMINAL;2018;106.4;e;;0.0 D;DG;WZ08-5224;NOMINAL;2019;103.9;e;;0.0 D;DG;WZ08-5224;NOMINAL;2020;100.3;e;;0.0 -D;DG;WZ08-5224;NOMINAL;2021;113.1;p;;0.0 -D;DG;WZ08-5224;NOMINAL;2022;119.3;p;;0.0 +D;DG;WZ08-5224;NOMINAL;2021;113.1;e;;0.0 +D;DG;WZ08-5224;NOMINAL;2022;119.3;e;;0.0 +D;DG;WZ08-5224;NOMINAL;2023;111.9;p;;0.0 D;DG;WZ08-5229;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5229;NOMINAL;2016;100.5;e;;0.0 D;DG;WZ08-5229;NOMINAL;2017;102.2;e;;0.0 D;DG;WZ08-5229;NOMINAL;2018;104.3;e;;0.0 D;DG;WZ08-5229;NOMINAL;2019;101.8;e;;0.0 D;DG;WZ08-5229;NOMINAL;2020;98.0;e;;0.0 -D;DG;WZ08-5229;NOMINAL;2021;122.9;p;;0.0 -D;DG;WZ08-5229;NOMINAL;2022;142.6;p;;0.0 +D;DG;WZ08-5229;NOMINAL;2021;122.9;e;;0.0 +D;DG;WZ08-5229;NOMINAL;2022;142.3;e;;0.0 +D;DG;WZ08-5229;NOMINAL;2023;130.7;p;;0.0 D;DG;WZ08-522;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-522;NOMINAL;2016;101.1;e;;0.0 D;DG;WZ08-522;NOMINAL;2017;102.6;e;;0.0 D;DG;WZ08-522;NOMINAL;2018;105.6;e;;0.0 D;DG;WZ08-522;NOMINAL;2019;104.4;e;;0.0 D;DG;WZ08-522;NOMINAL;2020;96.5;e;;0.0 -D;DG;WZ08-522;NOMINAL;2021;116.4;p;;0.0 -D;DG;WZ08-522;NOMINAL;2022;136.1;p;;0.0 +D;DG;WZ08-522;NOMINAL;2021;116.4;e;;0.0 +D;DG;WZ08-522;NOMINAL;2022;135.9;e;;0.0 +D;DG;WZ08-522;NOMINAL;2023;127.3;p;;0.0 D;DG;WZ08-522;REAL;2015;100.0;e;;0.0 D;DG;WZ08-522;REAL;2016;103.5;e;;0.0 D;DG;WZ08-522;REAL;2017;102.1;e;;0.0 D;DG;WZ08-522;REAL;2018;102.2;e;;0.0 D;DG;WZ08-522;REAL;2019;98.2;e;;0.0 D;DG;WZ08-522;REAL;2020;87.6;e;;0.0 -D;DG;WZ08-522;REAL;2021;94.0;p;;0.0 -D;DG;WZ08-522;REAL;2022;98.1;p;;0.0 +D;DG;WZ08-522;REAL;2021;94.0;e;;0.0 +D;DG;WZ08-522;REAL;2022;98.1;e;;0.0 +D;DG;WZ08-522;REAL;2023;98.3;p;;0.0 D;DG;WZ08-52;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-52;NOMINAL;2016;101.5;e;;0.0 D;DG;WZ08-52;NOMINAL;2017;105.7;e;;0.0 D;DG;WZ08-52;NOMINAL;2018;108.2;e;;0.0 D;DG;WZ08-52;NOMINAL;2019;108.0;e;;0.0 D;DG;WZ08-52;NOMINAL;2020;100.8;e;;0.0 -D;DG;WZ08-52;NOMINAL;2021;121.1;p;;0.0 -D;DG;WZ08-52;NOMINAL;2022;139.6;p;;0.0 +D;DG;WZ08-52;NOMINAL;2021;121.1;e;;0.0 +D;DG;WZ08-52;NOMINAL;2022;139.4;e;;0.0 +D;DG;WZ08-52;NOMINAL;2023;131.6;p;;0.0 D;DG;WZ08-52;REAL;2015;100.0;e;;0.0 D;DG;WZ08-52;REAL;2016;103.7;e;;0.0 D;DG;WZ08-52;REAL;2017;105.1;e;;0.0 D;DG;WZ08-52;REAL;2018;104.7;e;;0.0 D;DG;WZ08-52;REAL;2019;101.7;e;;0.0 D;DG;WZ08-52;REAL;2020;91.9;e;;0.0 -D;DG;WZ08-52;REAL;2021;99.5;p;;0.0 -D;DG;WZ08-52;REAL;2022;102.7;p;;0.0 +D;DG;WZ08-52;REAL;2021;99.5;e;;0.0 +D;DG;WZ08-52;REAL;2022;102.8;e;;0.0 +D;DG;WZ08-52;REAL;2023;102.0;p;;0.0 D;DG;WZ08-532;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-532;NOMINAL;2016;108.5;e;;0.0 D;DG;WZ08-532;NOMINAL;2017;127.9;e;;0.0 D;DG;WZ08-532;NOMINAL;2018;116.7;e;;0.0 D;DG;WZ08-532;NOMINAL;2019;123.9;e;;0.0 D;DG;WZ08-532;NOMINAL;2020;137.0;e;;0.0 -D;DG;WZ08-532;NOMINAL;2021;150.6;p;;0.0 -D;DG;WZ08-532;NOMINAL;2022;152.6;p;;0.0 +D;DG;WZ08-532;NOMINAL;2021;150.6;e;;0.0 +D;DG;WZ08-532;NOMINAL;2022;153.2;e;;0.0 +D;DG;WZ08-532;NOMINAL;2023;151.5;p;;0.0 D;DG;WZ08-532;REAL;2015;100.0;e;;0.0 D;DG;WZ08-532;REAL;2016;107.1;e;;0.0 D;DG;WZ08-532;REAL;2017;124.3;e;;0.0 D;DG;WZ08-532;REAL;2018;111.8;e;;0.0 D;DG;WZ08-532;REAL;2019;114.7;e;;0.0 D;DG;WZ08-532;REAL;2020;123.2;e;;0.0 -D;DG;WZ08-532;REAL;2021;132.1;p;;0.0 -D;DG;WZ08-532;REAL;2022;126.8;p;;0.0 +D;DG;WZ08-532;REAL;2021;132.1;e;;0.0 +D;DG;WZ08-532;REAL;2022;127.6;e;;0.0 +D;DG;WZ08-532;REAL;2023;121.2;p;;0.0 D;DG;WZ08-53;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-53;NOMINAL;2016;108.5;e;;0.0 D;DG;WZ08-53;NOMINAL;2017;127.9;e;;0.0 D;DG;WZ08-53;NOMINAL;2018;116.7;e;;0.0 D;DG;WZ08-53;NOMINAL;2019;123.9;e;;0.0 D;DG;WZ08-53;NOMINAL;2020;137.0;e;;0.0 -D;DG;WZ08-53;NOMINAL;2021;150.6;p;;0.0 -D;DG;WZ08-53;NOMINAL;2022;152.6;p;;0.0 +D;DG;WZ08-53;NOMINAL;2021;150.6;e;;0.0 +D;DG;WZ08-53;NOMINAL;2022;153.2;e;;0.0 +D;DG;WZ08-53;NOMINAL;2023;151.5;p;;0.0 D;DG;WZ08-53;REAL;2015;100.0;e;;0.0 D;DG;WZ08-53;REAL;2016;107.1;e;;0.0 D;DG;WZ08-53;REAL;2017;124.3;e;;0.0 D;DG;WZ08-53;REAL;2018;111.8;e;;0.0 D;DG;WZ08-53;REAL;2019;114.7;e;;0.0 D;DG;WZ08-53;REAL;2020;123.2;e;;0.0 -D;DG;WZ08-53;REAL;2021;132.1;p;;0.0 -D;DG;WZ08-53;REAL;2022;126.8;p;;0.0 +D;DG;WZ08-53;REAL;2021;132.1;e;;0.0 +D;DG;WZ08-53;REAL;2022;127.6;e;;0.0 +D;DG;WZ08-53;REAL;2023;121.2;p;;0.0 D;DG;WZ08-551;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-551;NOMINAL;2016;105.7;e;;0.0 D;DG;WZ08-551;NOMINAL;2017;109.5;e;;0.0 D;DG;WZ08-551;NOMINAL;2018;115.9;e;;0.0 D;DG;WZ08-551;NOMINAL;2019;120.4;e;;0.0 -D;DG;WZ08-551;NOMINAL;2020;65.0;e;;0.0 -D;DG;WZ08-551;NOMINAL;2021;72.8;p;;0.0 -D;DG;WZ08-551;NOMINAL;2022;133.5;p;;0.0 +D;DG;WZ08-551;NOMINAL;2020;64.7;e;;0.0 +D;DG;WZ08-551;NOMINAL;2021;74.1;e;;0.0 +D;DG;WZ08-551;NOMINAL;2022;133.7;e;;0.0 +D;DG;WZ08-551;NOMINAL;2023;147.8;p;;0.0 D;DG;WZ08-551;REAL;2015;100.0;e;;0.0 D;DG;WZ08-551;REAL;2016;103.7;e;;0.0 D;DG;WZ08-551;REAL;2017;105.4;e;;0.0 D;DG;WZ08-551;REAL;2018;109.2;e;;0.0 D;DG;WZ08-551;REAL;2019;111.2;e;;0.0 -D;DG;WZ08-551;REAL;2020;59.1;e;;0.0 -D;DG;WZ08-551;REAL;2021;65.3;p;;0.0 -D;DG;WZ08-551;REAL;2022;110.5;p;;0.0 +D;DG;WZ08-551;REAL;2020;58.7;e;;0.0 +D;DG;WZ08-551;REAL;2021;66.5;e;;0.0 +D;DG;WZ08-551;REAL;2022;110.7;e;;0.0 +D;DG;WZ08-551;REAL;2023;113.5;p;;0.0 D;DG;WZ08-552;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-552;NOMINAL;2016;105.7;e;;0.0 D;DG;WZ08-552;NOMINAL;2017;107.0;e;;0.0 D;DG;WZ08-552;NOMINAL;2018;109.8;e;;0.0 D;DG;WZ08-552;NOMINAL;2019;114.0;e;;0.0 -D;DG;WZ08-552;NOMINAL;2020;74.9;e;;0.0 -D;DG;WZ08-552;NOMINAL;2021;89.7;p;;0.0 -D;DG;WZ08-552;NOMINAL;2022;147.2;p;;0.0 +D;DG;WZ08-552;NOMINAL;2020;75.8;e;;0.0 +D;DG;WZ08-552;NOMINAL;2021;90.2;e;;0.0 +D;DG;WZ08-552;NOMINAL;2022;147.1;e;;0.0 +D;DG;WZ08-552;NOMINAL;2023;155.2;p;;0.0 D;DG;WZ08-552;REAL;2015;100.0;e;;0.0 D;DG;WZ08-552;REAL;2016;103.7;e;;0.0 D;DG;WZ08-552;REAL;2017;102.2;e;;0.0 D;DG;WZ08-552;REAL;2018;102.4;e;;0.0 D;DG;WZ08-552;REAL;2019;104.2;e;;0.0 -D;DG;WZ08-552;REAL;2020;65.3;e;;0.0 -D;DG;WZ08-552;REAL;2021;76.3;p;;0.0 -D;DG;WZ08-552;REAL;2022;119.1;p;;0.0 +D;DG;WZ08-552;REAL;2020;66.1;e;;0.0 +D;DG;WZ08-552;REAL;2021;76.7;e;;0.0 +D;DG;WZ08-552;REAL;2022;119.1;e;;0.0 +D;DG;WZ08-552;REAL;2023;116.3;p;;0.0 D;DG;WZ08-553;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-553;NOMINAL;2016;100.9;e;;0.0 D;DG;WZ08-553;NOMINAL;2017;110.8;e;;0.0 D;DG;WZ08-553;NOMINAL;2018;120.4;e;;0.0 D;DG;WZ08-553;NOMINAL;2019;123.1;e;;0.0 -D;DG;WZ08-553;NOMINAL;2020;118.9;e;;0.0 -D;DG;WZ08-553;NOMINAL;2021;125.9;p;;0.0 -D;DG;WZ08-553;NOMINAL;2022;151.6;p;;0.0 +D;DG;WZ08-553;NOMINAL;2020;118.8;e;;0.0 +D;DG;WZ08-553;NOMINAL;2021;126.1;e;;0.0 +D;DG;WZ08-553;NOMINAL;2022;151.0;e;;0.0 +D;DG;WZ08-553;NOMINAL;2023;156.5;p;;0.0 D;DG;WZ08-553;REAL;2015;100.0;e;;0.0 D;DG;WZ08-553;REAL;2016;98.7;e;;0.0 D;DG;WZ08-553;REAL;2017;106.8;e;;0.0 D;DG;WZ08-553;REAL;2018;114.0;e;;0.0 D;DG;WZ08-553;REAL;2019;114.4;e;;0.0 -D;DG;WZ08-553;REAL;2020;106.2;e;;0.0 -D;DG;WZ08-553;REAL;2021;107.9;p;;0.0 -D;DG;WZ08-553;REAL;2022;123.1;p;;0.0 +D;DG;WZ08-553;REAL;2020;106.1;e;;0.0 +D;DG;WZ08-553;REAL;2021;108.1;e;;0.0 +D;DG;WZ08-553;REAL;2022;122.6;e;;0.0 +D;DG;WZ08-553;REAL;2023;119.9;p;;0.0 D;DG;WZ08-55;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-55;NOMINAL;2016;105.7;e;;0.0 D;DG;WZ08-55;NOMINAL;2017;109.4;e;;0.0 D;DG;WZ08-55;NOMINAL;2018;115.7;e;;0.0 D;DG;WZ08-55;NOMINAL;2019;120.1;e;;0.0 -D;DG;WZ08-55;NOMINAL;2020;66.7;e;;0.0 -D;DG;WZ08-55;NOMINAL;2021;74.9;p;;0.0 -D;DG;WZ08-55;NOMINAL;2022;134.5;p;;0.0 +D;DG;WZ08-55;NOMINAL;2020;66.4;e;;0.0 +D;DG;WZ08-55;NOMINAL;2021;76.1;e;;0.0 +D;DG;WZ08-55;NOMINAL;2022;134.7;e;;0.0 +D;DG;WZ08-55;NOMINAL;2023;148.3;p;;0.0 D;DG;WZ08-55;REAL;2015;100.0;e;;0.0 D;DG;WZ08-55;REAL;2016;103.8;e;;0.0 D;DG;WZ08-55;REAL;2017;105.4;e;;0.0 D;DG;WZ08-55;REAL;2018;109.0;e;;0.0 D;DG;WZ08-55;REAL;2019;110.8;e;;0.0 -D;DG;WZ08-55;REAL;2020;60.8;e;;0.0 -D;DG;WZ08-55;REAL;2021;66.8;p;;0.0 -D;DG;WZ08-55;REAL;2022;111.2;p;;0.0 +D;DG;WZ08-55;REAL;2020;60.1;e;;0.0 +D;DG;WZ08-55;REAL;2021;67.9;e;;0.0 +D;DG;WZ08-55;REAL;2022;111.3;e;;0.0 +D;DG;WZ08-55;REAL;2023;113.7;p;;0.0 D;DG;WZ08-561-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-561-01;NOMINAL;2016;103.1;e;;0.0 D;DG;WZ08-561-01;NOMINAL;2017;108.7;e;;0.0 D;DG;WZ08-561-01;NOMINAL;2018;113.8;e;;0.0 D;DG;WZ08-561-01;NOMINAL;2019;119.4;e;;0.0 -D;DG;WZ08-561-01;NOMINAL;2020;81.3;e;;0.0 -D;DG;WZ08-561-01;NOMINAL;2021;83.6;p;;0.0 -D;DG;WZ08-561-01;NOMINAL;2022;119.5;p;;0.0 +D;DG;WZ08-561-01;NOMINAL;2020;80.3;e;;0.0 +D;DG;WZ08-561-01;NOMINAL;2021;84.0;e;;0.0 +D;DG;WZ08-561-01;NOMINAL;2022;120.0;e;;0.0 +D;DG;WZ08-561-01;NOMINAL;2023;127.7;p;;0.0 D;DG;WZ08-561-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-561-01;REAL;2016;100.6;e;;0.0 D;DG;WZ08-561-01;REAL;2017;103.9;e;;0.0 D;DG;WZ08-561-01;REAL;2018;106.4;e;;0.0 D;DG;WZ08-561-01;REAL;2019;108.5;e;;0.0 -D;DG;WZ08-561-01;REAL;2020;69.9;e;;0.0 -D;DG;WZ08-561-01;REAL;2021;69.7;p;;0.0 -D;DG;WZ08-561-01;REAL;2022;93.4;p;;0.0 +D;DG;WZ08-561-01;REAL;2020;69.4;e;;0.0 +D;DG;WZ08-561-01;REAL;2021;70.1;e;;0.0 +D;DG;WZ08-561-01;REAL;2022;93.8;e;;0.0 +D;DG;WZ08-561-01;REAL;2023;90.0;p;;0.0 D;DG;WZ08-561;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-561;NOMINAL;2016;103.3;e;;0.0 D;DG;WZ08-561;NOMINAL;2017;109.0;e;;0.0 D;DG;WZ08-561;NOMINAL;2018;114.1;e;;0.0 D;DG;WZ08-561;NOMINAL;2019;120.2;e;;0.0 -D;DG;WZ08-561;NOMINAL;2020;84.4;e;;0.0 -D;DG;WZ08-561;NOMINAL;2021;86.9;p;;0.0 -D;DG;WZ08-561;NOMINAL;2022;122.8;p;;0.0 +D;DG;WZ08-561;NOMINAL;2020;83.6;e;;0.0 +D;DG;WZ08-561;NOMINAL;2021;87.5;e;;0.0 +D;DG;WZ08-561;NOMINAL;2022;123.3;e;;0.0 +D;DG;WZ08-561;NOMINAL;2023;131.6;p;;0.0 D;DG;WZ08-561;REAL;2015;100.0;e;;0.0 D;DG;WZ08-561;REAL;2016;100.8;e;;0.0 D;DG;WZ08-561;REAL;2017;104.2;e;;0.0 D;DG;WZ08-561;REAL;2018;106.7;e;;0.0 D;DG;WZ08-561;REAL;2019;109.3;e;;0.0 -D;DG;WZ08-561;REAL;2020;72.8;e;;0.0 -D;DG;WZ08-561;REAL;2021;72.7;p;;0.0 -D;DG;WZ08-561;REAL;2022;96.4;p;;0.0 +D;DG;WZ08-561;REAL;2020;72.2;e;;0.0 +D;DG;WZ08-561;REAL;2021;73.1;e;;0.0 +D;DG;WZ08-561;REAL;2022;96.7;e;;0.0 +D;DG;WZ08-561;REAL;2023;92.5;p;;0.0 D;DG;WZ08-562;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-562;NOMINAL;2016;103.5;e;;0.0 D;DG;WZ08-562;NOMINAL;2017;106.7;e;;0.0 D;DG;WZ08-562;NOMINAL;2018;111.3;e;;0.0 D;DG;WZ08-562;NOMINAL;2019;116.3;e;;0.0 -D;DG;WZ08-562;NOMINAL;2020;83.8;e;;0.0 -D;DG;WZ08-562;NOMINAL;2021;84.3;p;;0.0 -D;DG;WZ08-562;NOMINAL;2022;116.4;p;;0.0 +D;DG;WZ08-562;NOMINAL;2020;85.0;e;;0.0 +D;DG;WZ08-562;NOMINAL;2021;86.2;e;;0.0 +D;DG;WZ08-562;NOMINAL;2022;116.7;e;;0.0 +D;DG;WZ08-562;NOMINAL;2023;130.7;p;;0.0 D;DG;WZ08-562;REAL;2015;100.0;e;;0.0 D;DG;WZ08-562;REAL;2016;101.6;e;;0.0 D;DG;WZ08-562;REAL;2017;102.5;e;;0.0 D;DG;WZ08-562;REAL;2018;105.4;e;;0.0 D;DG;WZ08-562;REAL;2019;107.9;e;;0.0 -D;DG;WZ08-562;REAL;2020;75.6;e;;0.0 -D;DG;WZ08-562;REAL;2021;74.2;p;;0.0 -D;DG;WZ08-562;REAL;2022;95.5;p;;0.0 +D;DG;WZ08-562;REAL;2020;76.9;e;;0.0 +D;DG;WZ08-562;REAL;2021;75.9;e;;0.0 +D;DG;WZ08-562;REAL;2022;95.8;e;;0.0 +D;DG;WZ08-562;REAL;2023;97.4;p;;0.0 D;DG;WZ08-563;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-563;NOMINAL;2016;101.4;e;;0.0 D;DG;WZ08-563;NOMINAL;2017;106.6;e;;0.0 D;DG;WZ08-563;NOMINAL;2018;111.6;e;;0.0 D;DG;WZ08-563;NOMINAL;2019;112.8;e;;0.0 -D;DG;WZ08-563;NOMINAL;2020;57.3;e;;0.0 -D;DG;WZ08-563;NOMINAL;2021;57.3;p;;0.0 -D;DG;WZ08-563;NOMINAL;2022;93.6;p;;0.0 +D;DG;WZ08-563;NOMINAL;2020;54.9;e;;0.0 +D;DG;WZ08-563;NOMINAL;2021;56.6;e;;0.0 +D;DG;WZ08-563;NOMINAL;2022;94.3;e;;0.0 +D;DG;WZ08-563;NOMINAL;2023;97.1;p;;0.0 D;DG;WZ08-563;REAL;2015;100.0;e;;0.0 D;DG;WZ08-563;REAL;2016;99.3;e;;0.0 D;DG;WZ08-563;REAL;2017;102.3;e;;0.0 D;DG;WZ08-563;REAL;2018;104.9;e;;0.0 D;DG;WZ08-563;REAL;2019;103.4;e;;0.0 -D;DG;WZ08-563;REAL;2020;49.5;e;;0.0 -D;DG;WZ08-563;REAL;2021;46.6;p;;0.0 -D;DG;WZ08-563;REAL;2022;70.0;p;;0.0 +D;DG;WZ08-563;REAL;2020;47.4;e;;0.0 +D;DG;WZ08-563;REAL;2021;46.0;e;;0.0 +D;DG;WZ08-563;REAL;2022;70.5;e;;0.0 +D;DG;WZ08-563;REAL;2023;70.2;p;;0.0 D;DG;WZ08-56;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-56;NOMINAL;2016;103.1;e;;0.0 D;DG;WZ08-56;NOMINAL;2017;108.3;e;;0.0 D;DG;WZ08-56;NOMINAL;2018;113.2;e;;0.0 D;DG;WZ08-56;NOMINAL;2019;118.7;e;;0.0 -D;DG;WZ08-56;NOMINAL;2020;81.9;e;;0.0 -D;DG;WZ08-56;NOMINAL;2021;83.8;p;;0.0 -D;DG;WZ08-56;NOMINAL;2022;118.8;p;;0.0 +D;DG;WZ08-56;NOMINAL;2020;81.4;e;;0.0 +D;DG;WZ08-56;NOMINAL;2021;84.5;e;;0.0 +D;DG;WZ08-56;NOMINAL;2022;119.3;e;;0.0 +D;DG;WZ08-56;NOMINAL;2023;128.4;p;;0.0 D;DG;WZ08-56;REAL;2015;100.0;e;;0.0 D;DG;WZ08-56;REAL;2016;100.8;e;;0.0 D;DG;WZ08-56;REAL;2017;103.6;e;;0.0 D;DG;WZ08-56;REAL;2018;106.2;e;;0.0 D;DG;WZ08-56;REAL;2019;108.4;e;;0.0 -D;DG;WZ08-56;REAL;2020;71.1;e;;0.0 -D;DG;WZ08-56;REAL;2021;70.7;p;;0.0 -D;DG;WZ08-56;REAL;2022;93.9;p;;0.0 +D;DG;WZ08-56;REAL;2020;71.0;e;;0.0 +D;DG;WZ08-56;REAL;2021;71.4;e;;0.0 +D;DG;WZ08-56;REAL;2022;94.2;e;;0.0 +D;DG;WZ08-56;REAL;2023;91.6;p;;0.0 D;DG;WZ08-58-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-58-02;NOMINAL;2016;102.6;e;;0.0 D;DG;WZ08-58-02;NOMINAL;2017;104.8;e;;0.0 D;DG;WZ08-58-02;NOMINAL;2018;102.7;e;;0.0 D;DG;WZ08-58-02;NOMINAL;2019;101.8;e;;0.0 D;DG;WZ08-58-02;NOMINAL;2020;96.2;e;;0.0 -D;DG;WZ08-58-02;NOMINAL;2021;102.2;p;;0.0 -D;DG;WZ08-58-02;NOMINAL;2022;109.2;p;;0.0 +D;DG;WZ08-58-02;NOMINAL;2021;102.2;e;;0.0 +D;DG;WZ08-58-02;NOMINAL;2022;109.2;e;;0.0 +D;DG;WZ08-58-02;NOMINAL;2023;111.0;p;;0.0 D;DG;WZ08-58-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-58-02;REAL;2016;100.9;e;;0.0 D;DG;WZ08-58-02;REAL;2017;101.7;e;;0.0 D;DG;WZ08-58-02;REAL;2018;99.0;e;;0.0 D;DG;WZ08-58-02;REAL;2019;96.3;e;;0.0 D;DG;WZ08-58-02;REAL;2020;90.4;e;;0.0 -D;DG;WZ08-58-02;REAL;2021;94.7;p;;0.0 -D;DG;WZ08-58-02;REAL;2022;98.2;p;;0.0 +D;DG;WZ08-58-02;REAL;2021;94.7;e;;0.0 +D;DG;WZ08-58-02;REAL;2022;98.2;e;;0.0 +D;DG;WZ08-58-02;REAL;2023;95.9;p;;0.0 D;DG;WZ08-58-03;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-58-03;NOMINAL;2016;112.4;e;;0.0 D;DG;WZ08-58-03;NOMINAL;2017;110.0;e;;0.0 D;DG;WZ08-58-03;NOMINAL;2018;102.1;e;;0.0 D;DG;WZ08-58-03;NOMINAL;2019;100.0;e;;0.0 D;DG;WZ08-58-03;NOMINAL;2020;92.7;e;;0.0 -D;DG;WZ08-58-03;NOMINAL;2021;97.9;p;;0.0 -D;DG;WZ08-58-03;NOMINAL;2022;104.5;p;;0.0 +D;DG;WZ08-58-03;NOMINAL;2021;97.9;e;;0.0 +D;DG;WZ08-58-03;NOMINAL;2022;104.5;e;;0.0 +D;DG;WZ08-58-03;NOMINAL;2023;104.6;p;;0.0 D;DG;WZ08-58-03;REAL;2015;100.0;e;;0.0 D;DG;WZ08-58-03;REAL;2016;110.5;e;;0.0 D;DG;WZ08-58-03;REAL;2017;106.8;e;;0.0 D;DG;WZ08-58-03;REAL;2018;98.3;e;;0.0 D;DG;WZ08-58-03;REAL;2019;94.3;e;;0.0 D;DG;WZ08-58-03;REAL;2020;86.7;e;;0.0 -D;DG;WZ08-58-03;REAL;2021;90.1;p;;0.0 -D;DG;WZ08-58-03;REAL;2022;93.1;p;;0.0 +D;DG;WZ08-58-03;REAL;2021;90.1;e;;0.0 +D;DG;WZ08-58-03;REAL;2022;93.1;e;;0.0 +D;DG;WZ08-58-03;REAL;2023;89.5;p;;0.0 D;DG;WZ08-58-04;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-58-04;NOMINAL;2016;109.7;e;;0.0 D;DG;WZ08-58-04;NOMINAL;2017;104.8;e;;0.0 D;DG;WZ08-58-04;NOMINAL;2018;114.0;e;;0.0 D;DG;WZ08-58-04;NOMINAL;2019;115.6;e;;0.0 D;DG;WZ08-58-04;NOMINAL;2020;117.2;e;;0.0 -D;DG;WZ08-58-04;NOMINAL;2021;125.2;p;;0.0 -D;DG;WZ08-58-04;NOMINAL;2022;137.4;p;;0.0 +D;DG;WZ08-58-04;NOMINAL;2021;125.2;e;;0.0 +D;DG;WZ08-58-04;NOMINAL;2022;137.4;e;;0.0 +D;DG;WZ08-58-04;NOMINAL;2023;146.4;p;;0.0 D;DG;WZ08-58-04;REAL;2015;100.0;e;;0.0 D;DG;WZ08-58-04;REAL;2016;110.5;e;;0.0 D;DG;WZ08-58-04;REAL;2017;105.8;e;;0.0 D;DG;WZ08-58-04;REAL;2018;114.1;e;;0.0 D;DG;WZ08-58-04;REAL;2019;115.0;e;;0.0 D;DG;WZ08-58-04;REAL;2020;115.9;e;;0.0 -D;DG;WZ08-58-04;REAL;2021;122.5;p;;0.0 -D;DG;WZ08-58-04;REAL;2022;132.6;p;;0.0 +D;DG;WZ08-58-04;REAL;2021;122.5;e;;0.0 +D;DG;WZ08-58-04;REAL;2022;132.7;e;;0.0 +D;DG;WZ08-58-04;REAL;2023;138.3;p;;0.0 D;DG;WZ08-58-05;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-58-05;NOMINAL;2016;106.5;e;;0.0 D;DG;WZ08-58-05;NOMINAL;2017;112.9;e;;0.0 D;DG;WZ08-58-05;NOMINAL;2018;122.8;e;;0.0 D;DG;WZ08-58-05;NOMINAL;2019;127.4;e;;0.0 D;DG;WZ08-58-05;NOMINAL;2020;127.8;e;;0.0 -D;DG;WZ08-58-05;NOMINAL;2021;139.9;p;;0.0 -D;DG;WZ08-58-05;NOMINAL;2022;156.1;p;;0.0 +D;DG;WZ08-58-05;NOMINAL;2021;139.9;e;;0.0 +D;DG;WZ08-58-05;NOMINAL;2022;156.1;e;;0.0 +D;DG;WZ08-58-05;NOMINAL;2023;165.2;p;;0.0 D;DG;WZ08-58-05;REAL;2015;100.0;e;;0.0 D;DG;WZ08-58-05;REAL;2016;107.0;e;;0.0 D;DG;WZ08-58-05;REAL;2017;113.2;e;;0.0 D;DG;WZ08-58-05;REAL;2018;122.4;e;;0.0 D;DG;WZ08-58-05;REAL;2019;126.4;e;;0.0 D;DG;WZ08-58-05;REAL;2020;126.4;e;;0.0 -D;DG;WZ08-58-05;REAL;2021;137.6;p;;0.0 -D;DG;WZ08-58-05;REAL;2022;151.8;p;;0.0 +D;DG;WZ08-58-05;REAL;2021;137.6;e;;0.0 +D;DG;WZ08-58-05;REAL;2022;151.9;e;;0.0 +D;DG;WZ08-58-05;REAL;2023;157.0;p;;0.0 D;DG;WZ08-5811;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5811;NOMINAL;2016;100.4;e;;0.0 D;DG;WZ08-5811;NOMINAL;2017;103.4;e;;0.0 D;DG;WZ08-5811;NOMINAL;2018;100.2;e;;0.0 D;DG;WZ08-5811;NOMINAL;2019;98.6;e;;0.0 D;DG;WZ08-5811;NOMINAL;2020;99.5;e;;0.0 -D;DG;WZ08-5811;NOMINAL;2021;106.6;p;;0.0 -D;DG;WZ08-5811;NOMINAL;2022;108.1;p;;0.0 +D;DG;WZ08-5811;NOMINAL;2021;106.6;e;;0.0 +D;DG;WZ08-5811;NOMINAL;2022;108.1;e;;0.0 +D;DG;WZ08-5811;NOMINAL;2023;113.3;p;;0.0 D;DG;WZ08-5812;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5812;NOMINAL;2016;84.0;e;;0.0 D;DG;WZ08-5812;NOMINAL;2017;79.4;e;;0.0 D;DG;WZ08-5812;NOMINAL;2018;71.6;e;;0.0 D;DG;WZ08-5812;NOMINAL;2019;68.0;e;;0.0 D;DG;WZ08-5812;NOMINAL;2020;68.9;e;;0.0 -D;DG;WZ08-5812;NOMINAL;2021;60.1;p;;0.0 -D;DG;WZ08-5812;NOMINAL;2022;55.5;p;;0.0 +D;DG;WZ08-5812;NOMINAL;2021;60.1;e;;0.0 +D;DG;WZ08-5812;NOMINAL;2022;55.5;e;;0.0 +D;DG;WZ08-5812;NOMINAL;2023;51.6;p;;0.0 D;DG;WZ08-5813;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5813;NOMINAL;2016;98.5;e;;0.0 D;DG;WZ08-5813;NOMINAL;2017;100.2;e;;0.0 D;DG;WZ08-5813;NOMINAL;2018;95.2;e;;0.0 D;DG;WZ08-5813;NOMINAL;2019;93.2;e;;0.0 D;DG;WZ08-5813;NOMINAL;2020;88.1;e;;0.0 -D;DG;WZ08-5813;NOMINAL;2021;92.3;p;;0.0 -D;DG;WZ08-5813;NOMINAL;2022;94.7;p;;0.0 +D;DG;WZ08-5813;NOMINAL;2021;92.3;e;;0.0 +D;DG;WZ08-5813;NOMINAL;2022;94.7;e;;0.0 +D;DG;WZ08-5813;NOMINAL;2023;95.4;p;;0.0 D;DG;WZ08-5814;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5814;NOMINAL;2016;99.1;e;;0.0 D;DG;WZ08-5814;NOMINAL;2017;96.7;e;;0.0 D;DG;WZ08-5814;NOMINAL;2018;94.3;e;;0.0 D;DG;WZ08-5814;NOMINAL;2019;92.7;e;;0.0 D;DG;WZ08-5814;NOMINAL;2020;89.9;e;;0.0 -D;DG;WZ08-5814;NOMINAL;2021;85.8;p;;0.0 -D;DG;WZ08-5814;NOMINAL;2022;91.2;p;;0.0 +D;DG;WZ08-5814;NOMINAL;2021;85.8;e;;0.0 +D;DG;WZ08-5814;NOMINAL;2022;91.2;e;;0.0 +D;DG;WZ08-5814;NOMINAL;2023;91.1;p;;0.0 D;DG;WZ08-5819;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5819;NOMINAL;2016;104.4;e;;0.0 D;DG;WZ08-5819;NOMINAL;2017;96.8;e;;0.0 D;DG;WZ08-5819;NOMINAL;2018;99.3;e;;0.0 D;DG;WZ08-5819;NOMINAL;2019;96.0;e;;0.0 D;DG;WZ08-5819;NOMINAL;2020;88.6;e;;0.0 -D;DG;WZ08-5819;NOMINAL;2021;92.6;p;;0.0 -D;DG;WZ08-5819;NOMINAL;2022;98.7;p;;0.0 +D;DG;WZ08-5819;NOMINAL;2021;92.6;e;;0.0 +D;DG;WZ08-5819;NOMINAL;2022;98.7;e;;0.0 +D;DG;WZ08-5819;NOMINAL;2023;97.9;p;;0.0 D;DG;WZ08-581;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-581;NOMINAL;2016;98.7;e;;0.0 D;DG;WZ08-581;NOMINAL;2017;98.4;e;;0.0 D;DG;WZ08-581;NOMINAL;2018;95.0;e;;0.0 D;DG;WZ08-581;NOMINAL;2019;92.9;e;;0.0 D;DG;WZ08-581;NOMINAL;2020;89.7;e;;0.0 -D;DG;WZ08-581;NOMINAL;2021;91.5;p;;0.0 -D;DG;WZ08-581;NOMINAL;2022;94.4;p;;0.0 +D;DG;WZ08-581;NOMINAL;2021;91.5;e;;0.0 +D;DG;WZ08-581;NOMINAL;2022;94.4;e;;0.0 +D;DG;WZ08-581;NOMINAL;2023;95.4;p;;0.0 D;DG;WZ08-581;REAL;2015;100.0;e;;0.0 D;DG;WZ08-581;REAL;2016;96.5;e;;0.0 D;DG;WZ08-581;REAL;2017;94.6;e;;0.0 D;DG;WZ08-581;REAL;2018;90.1;e;;0.0 D;DG;WZ08-581;REAL;2019;85.2;e;;0.0 D;DG;WZ08-581;REAL;2020;81.7;e;;0.0 -D;DG;WZ08-581;REAL;2021;81.6;p;;0.0 -D;DG;WZ08-581;REAL;2022;82.0;p;;0.0 +D;DG;WZ08-581;REAL;2021;81.6;e;;0.0 +D;DG;WZ08-581;REAL;2022;82.0;e;;0.0 +D;DG;WZ08-581;REAL;2023;78.6;p;;0.0 D;DG;WZ08-5821;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5821;NOMINAL;2016;113.1;e;;0.0 D;DG;WZ08-5821;NOMINAL;2017;136.7;e;;0.0 D;DG;WZ08-5821;NOMINAL;2018;114.7;e;;0.0 D;DG;WZ08-5821;NOMINAL;2019;101.8;e;;0.0 D;DG;WZ08-5821;NOMINAL;2020;150.8;e;;0.0 -D;DG;WZ08-5821;NOMINAL;2021;149.8;p;;0.0 -D;DG;WZ08-5821;NOMINAL;2022;171.4;p;;0.0 +D;DG;WZ08-5821;NOMINAL;2021;149.8;e;;0.0 +D;DG;WZ08-5821;NOMINAL;2022;171.4;e;;0.0 +D;DG;WZ08-5821;NOMINAL;2023;197.0;p;;0.0 D;DG;WZ08-5829;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5829;NOMINAL;2016;111.0;e;;0.0 D;DG;WZ08-5829;NOMINAL;2017;116.9;e;;0.0 D;DG;WZ08-5829;NOMINAL;2018;114.8;e;;0.0 D;DG;WZ08-5829;NOMINAL;2019;123.8;e;;0.0 D;DG;WZ08-5829;NOMINAL;2020;122.0;e;;0.0 -D;DG;WZ08-5829;NOMINAL;2021;145.0;p;;0.0 -D;DG;WZ08-5829;NOMINAL;2022;153.5;p;;0.0 +D;DG;WZ08-5829;NOMINAL;2021;145.0;e;;0.0 +D;DG;WZ08-5829;NOMINAL;2022;153.5;e;;0.0 +D;DG;WZ08-5829;NOMINAL;2023;168.5;p;;0.0 D;DG;WZ08-582;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-582;NOMINAL;2016;111.2;e;;0.0 D;DG;WZ08-582;NOMINAL;2017;118.6;e;;0.0 D;DG;WZ08-582;NOMINAL;2018;114.8;e;;0.0 D;DG;WZ08-582;NOMINAL;2019;122.0;e;;0.0 D;DG;WZ08-582;NOMINAL;2020;124.4;e;;0.0 -D;DG;WZ08-582;NOMINAL;2021;145.4;p;;0.0 -D;DG;WZ08-582;NOMINAL;2022;155.0;p;;0.0 +D;DG;WZ08-582;NOMINAL;2021;145.4;e;;0.0 +D;DG;WZ08-582;NOMINAL;2022;155.0;e;;0.0 +D;DG;WZ08-582;NOMINAL;2023;170.8;p;;0.0 D;DG;WZ08-582;REAL;2015;100.0;e;;0.0 D;DG;WZ08-582;REAL;2016;111.2;e;;0.0 D;DG;WZ08-582;REAL;2017;117.8;e;;0.0 D;DG;WZ08-582;REAL;2018;113.9;e;;0.0 D;DG;WZ08-582;REAL;2019;121.0;e;;0.0 D;DG;WZ08-582;REAL;2020;122.8;e;;0.0 -D;DG;WZ08-582;REAL;2021;143.3;p;;0.0 -D;DG;WZ08-582;REAL;2022;149.7;p;;0.0 +D;DG;WZ08-582;REAL;2021;143.3;e;;0.0 +D;DG;WZ08-582;REAL;2022;149.7;e;;0.0 +D;DG;WZ08-582;REAL;2023;159.6;p;;0.0 D;DG;WZ08-58;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-58;NOMINAL;2016;101.0;e;;0.0 D;DG;WZ08-58;NOMINAL;2017;102.1;e;;0.0 D;DG;WZ08-58;NOMINAL;2018;98.6;e;;0.0 D;DG;WZ08-58;NOMINAL;2019;98.2;e;;0.0 D;DG;WZ08-58;NOMINAL;2020;96.0;e;;0.0 -D;DG;WZ08-58;NOMINAL;2021;101.3;p;;0.0 -D;DG;WZ08-58;NOMINAL;2022;105.5;p;;0.0 +D;DG;WZ08-58;NOMINAL;2021;101.3;e;;0.0 +D;DG;WZ08-58;NOMINAL;2022;105.5;e;;0.0 +D;DG;WZ08-58;NOMINAL;2023;109.1;p;;0.0 D;DG;WZ08-58;REAL;2015;100.0;e;;0.0 D;DG;WZ08-58;REAL;2016;99.1;e;;0.0 D;DG;WZ08-58;REAL;2017;98.9;e;;0.0 D;DG;WZ08-58;REAL;2018;94.4;e;;0.0 D;DG;WZ08-58;REAL;2019;91.7;e;;0.0 D;DG;WZ08-58;REAL;2020;89.1;e;;0.0 -D;DG;WZ08-58;REAL;2021;92.9;p;;0.0 -D;DG;WZ08-58;REAL;2022;94.4;p;;0.0 +D;DG;WZ08-58;REAL;2021;92.9;e;;0.0 +D;DG;WZ08-58;REAL;2022;94.4;e;;0.0 +D;DG;WZ08-58;REAL;2023;93.4;p;;0.0 D;DG;WZ08-5911;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5911;NOMINAL;2016;115.4;e;;0.0 D;DG;WZ08-5911;NOMINAL;2017;105.0;e;;0.0 D;DG;WZ08-5911;NOMINAL;2018;116.3;e;;0.0 D;DG;WZ08-5911;NOMINAL;2019;120.7;e;;0.0 D;DG;WZ08-5911;NOMINAL;2020;100.6;e;;0.0 -D;DG;WZ08-5911;NOMINAL;2021;112.8;p;;0.0 -D;DG;WZ08-5911;NOMINAL;2022;144.5;p;;0.0 +D;DG;WZ08-5911;NOMINAL;2021;112.8;e;;0.0 +D;DG;WZ08-5911;NOMINAL;2022;144.5;e;;0.0 +D;DG;WZ08-5911;NOMINAL;2023;149.7;p;;0.0 D;DG;WZ08-5912;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5912;NOMINAL;2016;101.7;e;;0.0 D;DG;WZ08-5912;NOMINAL;2017;124.6;e;;0.0 D;DG;WZ08-5912;NOMINAL;2018;126.0;e;;0.0 D;DG;WZ08-5912;NOMINAL;2019;132.2;e;;0.0 D;DG;WZ08-5912;NOMINAL;2020;120.6;e;;0.0 -D;DG;WZ08-5912;NOMINAL;2021;133.9;p;;0.0 -D;DG;WZ08-5912;NOMINAL;2022;162.4;p;;0.0 +D;DG;WZ08-5912;NOMINAL;2021;133.9;e;;0.0 +D;DG;WZ08-5912;NOMINAL;2022;162.4;e;;0.0 +D;DG;WZ08-5912;NOMINAL;2023;152.0;p;;0.0 D;DG;WZ08-5913;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5913;NOMINAL;2016;107.3;e;;0.0 D;DG;WZ08-5913;NOMINAL;2017;92.1;e;;0.0 D;DG;WZ08-5913;NOMINAL;2018;101.6;e;;0.0 D;DG;WZ08-5913;NOMINAL;2019;90.1;e;;0.0 D;DG;WZ08-5913;NOMINAL;2020;88.3;e;;0.0 -D;DG;WZ08-5913;NOMINAL;2021;81.1;p;;0.0 -D;DG;WZ08-5913;NOMINAL;2022;89.7;p;;0.0 +D;DG;WZ08-5913;NOMINAL;2021;81.1;e;;0.0 +D;DG;WZ08-5913;NOMINAL;2022;90.4;e;;0.0 +D;DG;WZ08-5913;NOMINAL;2023;78.0;p;;0.0 D;DG;WZ08-5914;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-5914;NOMINAL;2016;90.6;e;;0.0 D;DG;WZ08-5914;NOMINAL;2017;92.5;e;;0.0 D;DG;WZ08-5914;NOMINAL;2018;83.9;e;;0.0 D;DG;WZ08-5914;NOMINAL;2019;95.9;e;;0.0 D;DG;WZ08-5914;NOMINAL;2020;30.4;e;;0.0 -D;DG;WZ08-5914;NOMINAL;2021;45.6;p;;0.0 -D;DG;WZ08-5914;NOMINAL;2022;85.5;p;;0.0 +D;DG;WZ08-5914;NOMINAL;2021;45.6;e;;0.0 +D;DG;WZ08-5914;NOMINAL;2022;85.5;e;;0.0 +D;DG;WZ08-5914;NOMINAL;2023;109.0;p;;0.0 D;DG;WZ08-591;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-591;NOMINAL;2016;108.6;e;;0.0 D;DG;WZ08-591;NOMINAL;2017;101.1;e;;0.0 D;DG;WZ08-591;NOMINAL;2018;107.8;e;;0.0 D;DG;WZ08-591;NOMINAL;2019;110.9;e;;0.0 D;DG;WZ08-591;NOMINAL;2020;85.8;e;;0.0 -D;DG;WZ08-591;NOMINAL;2021;95.1;p;;0.0 -D;DG;WZ08-591;NOMINAL;2022;124.0;p;;0.0 +D;DG;WZ08-591;NOMINAL;2021;95.1;e;;0.0 +D;DG;WZ08-591;NOMINAL;2022;124.1;e;;0.0 +D;DG;WZ08-591;NOMINAL;2023;129.0;p;;0.0 D;DG;WZ08-591;REAL;2015;100.0;e;;0.0 D;DG;WZ08-591;REAL;2016;107.0;e;;0.0 D;DG;WZ08-591;REAL;2017;97.6;e;;0.0 D;DG;WZ08-591;REAL;2018;102.4;e;;0.0 D;DG;WZ08-591;REAL;2019;104.3;e;;0.0 D;DG;WZ08-591;REAL;2020;80.4;e;;0.0 -D;DG;WZ08-591;REAL;2021;87.0;p;;0.0 -D;DG;WZ08-591;REAL;2022;107.7;p;;0.0 +D;DG;WZ08-591;REAL;2021;87.0;e;;0.0 +D;DG;WZ08-591;REAL;2022;107.8;e;;0.0 +D;DG;WZ08-591;REAL;2023;106.1;p;;0.0 D;DG;WZ08-592;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-592;NOMINAL;2016;96.9;e;;0.0 D;DG;WZ08-592;NOMINAL;2017;112.4;e;;0.0 D;DG;WZ08-592;NOMINAL;2018;120.6;e;;0.0 D;DG;WZ08-592;NOMINAL;2019;122.9;e;;0.0 D;DG;WZ08-592;NOMINAL;2020;119.1;e;;0.0 -D;DG;WZ08-592;NOMINAL;2021;116.8;p;;0.0 -D;DG;WZ08-592;NOMINAL;2022;133.6;p;;0.0 +D;DG;WZ08-592;NOMINAL;2021;116.8;e;;0.0 +D;DG;WZ08-592;NOMINAL;2022;133.7;e;;0.0 +D;DG;WZ08-592;NOMINAL;2023;148.1;p;;0.0 D;DG;WZ08-592;REAL;2015;100.0;e;;0.0 D;DG;WZ08-592;REAL;2016;96.3;e;;0.0 D;DG;WZ08-592;REAL;2017;108.2;e;;0.0 D;DG;WZ08-592;REAL;2018;117.8;e;;0.0 D;DG;WZ08-592;REAL;2019;112.4;e;;0.0 D;DG;WZ08-592;REAL;2020;104.7;e;;0.0 -D;DG;WZ08-592;REAL;2021;106.0;p;;0.0 -D;DG;WZ08-592;REAL;2022;116.1;p;;0.0 +D;DG;WZ08-592;REAL;2021;106.0;e;;0.0 +D;DG;WZ08-592;REAL;2022;116.2;e;;0.0 +D;DG;WZ08-592;REAL;2023;125.7;p;;0.0 D;DG;WZ08-59;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-59;NOMINAL;2016;105.8;e;;0.0 D;DG;WZ08-59;NOMINAL;2017;103.8;e;;0.0 D;DG;WZ08-59;NOMINAL;2018;110.8;e;;0.0 D;DG;WZ08-59;NOMINAL;2019;113.7;e;;0.0 D;DG;WZ08-59;NOMINAL;2020;93.5;e;;0.0 -D;DG;WZ08-59;NOMINAL;2021;100.2;p;;0.0 -D;DG;WZ08-59;NOMINAL;2022;126.3;p;;0.0 +D;DG;WZ08-59;NOMINAL;2021;100.2;e;;0.0 +D;DG;WZ08-59;NOMINAL;2022;126.4;e;;0.0 +D;DG;WZ08-59;NOMINAL;2023;133.4;p;;0.0 D;DG;WZ08-59;REAL;2015;100.0;e;;0.0 D;DG;WZ08-59;REAL;2016;104.5;e;;0.0 D;DG;WZ08-59;REAL;2017;100.1;e;;0.0 D;DG;WZ08-59;REAL;2018;106.0;e;;0.0 D;DG;WZ08-59;REAL;2019;106.2;e;;0.0 D;DG;WZ08-59;REAL;2020;86.1;e;;0.0 -D;DG;WZ08-59;REAL;2021;91.5;p;;0.0 -D;DG;WZ08-59;REAL;2022;109.6;p;;0.0 +D;DG;WZ08-59;REAL;2021;91.5;e;;0.0 +D;DG;WZ08-59;REAL;2022;109.7;e;;0.0 +D;DG;WZ08-59;REAL;2023;110.6;p;;0.0 D;DG;WZ08-601;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-601;NOMINAL;2016;99.4;e;;0.0 D;DG;WZ08-601;NOMINAL;2017;96.5;e;;0.0 D;DG;WZ08-601;NOMINAL;2018;95.9;e;;0.0 D;DG;WZ08-601;NOMINAL;2019;68.2;e;;0.0 D;DG;WZ08-601;NOMINAL;2020;66.1;e;;0.0 -D;DG;WZ08-601;NOMINAL;2021;68.7;p;;0.0 -D;DG;WZ08-601;NOMINAL;2022;72.2;p;;0.0 +D;DG;WZ08-601;NOMINAL;2021;68.7;e;;0.0 +D;DG;WZ08-601;NOMINAL;2022;72.2;e;;0.0 +D;DG;WZ08-601;NOMINAL;2023;74.2;p;;0.0 D;DG;WZ08-601;REAL;2015;100.0;e;;0.0 D;DG;WZ08-601;REAL;2016;100.3;e;;0.0 D;DG;WZ08-601;REAL;2017;97.3;e;;0.0 D;DG;WZ08-601;REAL;2018;96.7;e;;0.0 D;DG;WZ08-601;REAL;2019;68.8;e;;0.0 D;DG;WZ08-601;REAL;2020;66.7;e;;0.0 -D;DG;WZ08-601;REAL;2021;67.6;p;;0.0 -D;DG;WZ08-601;REAL;2022;69.4;p;;0.0 +D;DG;WZ08-601;REAL;2021;67.6;e;;0.0 +D;DG;WZ08-601;REAL;2022;69.4;e;;0.0 +D;DG;WZ08-601;REAL;2023;71.3;p;;0.0 D;DG;WZ08-602;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-602;NOMINAL;2016;104.4;e;;0.0 D;DG;WZ08-602;NOMINAL;2017;111.2;e;;0.0 D;DG;WZ08-602;NOMINAL;2018;110.1;e;;0.0 D;DG;WZ08-602;NOMINAL;2019;109.1;e;;0.0 D;DG;WZ08-602;NOMINAL;2020;108.4;e;;0.0 -D;DG;WZ08-602;NOMINAL;2021;117.2;p;;0.0 -D;DG;WZ08-602;NOMINAL;2022;114.0;p;;0.0 +D;DG;WZ08-602;NOMINAL;2021;117.2;e;;0.0 +D;DG;WZ08-602;NOMINAL;2022;113.9;e;;0.0 +D;DG;WZ08-602;NOMINAL;2023;103.8;p;;0.0 D;DG;WZ08-602;REAL;2015;100.0;e;;0.0 D;DG;WZ08-602;REAL;2016;102.2;e;;0.0 D;DG;WZ08-602;REAL;2017;108.7;e;;0.0 D;DG;WZ08-602;REAL;2018;108.3;e;;0.0 D;DG;WZ08-602;REAL;2019;107.7;e;;0.0 D;DG;WZ08-602;REAL;2020;106.5;e;;0.0 -D;DG;WZ08-602;REAL;2021;112.4;p;;0.0 -D;DG;WZ08-602;REAL;2022;107.4;p;;0.0 +D;DG;WZ08-602;REAL;2021;112.4;e;;0.0 +D;DG;WZ08-602;REAL;2022;107.2;e;;0.0 +D;DG;WZ08-602;REAL;2023;96.3;p;;0.0 D;DG;WZ08-60;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-60;NOMINAL;2016;103.5;e;;0.0 D;DG;WZ08-60;NOMINAL;2017;108.7;e;;0.0 D;DG;WZ08-60;NOMINAL;2018;107.6;e;;0.0 D;DG;WZ08-60;NOMINAL;2019;102.1;e;;0.0 D;DG;WZ08-60;NOMINAL;2020;101.1;e;;0.0 -D;DG;WZ08-60;NOMINAL;2021;108.8;p;;0.0 -D;DG;WZ08-60;NOMINAL;2022;106.8;p;;0.0 +D;DG;WZ08-60;NOMINAL;2021;108.8;e;;0.0 +D;DG;WZ08-60;NOMINAL;2022;106.7;e;;0.0 +D;DG;WZ08-60;NOMINAL;2023;98.7;p;;0.0 D;DG;WZ08-60;REAL;2015;100.0;e;;0.0 D;DG;WZ08-60;REAL;2016;101.9;e;;0.0 D;DG;WZ08-60;REAL;2017;106.8;e;;0.0 D;DG;WZ08-60;REAL;2018;106.4;e;;0.0 D;DG;WZ08-60;REAL;2019;101.0;e;;0.0 D;DG;WZ08-60;REAL;2020;99.7;e;;0.0 -D;DG;WZ08-60;REAL;2021;104.7;p;;0.0 -D;DG;WZ08-60;REAL;2022;100.9;p;;0.0 +D;DG;WZ08-60;REAL;2021;104.7;e;;0.0 +D;DG;WZ08-60;REAL;2022;100.7;e;;0.0 +D;DG;WZ08-60;REAL;2023;92.0;p;;0.0 D;DG;WZ08-61-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-61-01;NOMINAL;2016;108.0;e;;0.0 D;DG;WZ08-61-01;NOMINAL;2017;107.2;e;;0.0 D;DG;WZ08-61-01;NOMINAL;2018;111.5;e;;0.0 D;DG;WZ08-61-01;NOMINAL;2019;113.5;e;;0.0 D;DG;WZ08-61-01;NOMINAL;2020;112.5;e;;0.0 -D;DG;WZ08-61-01;NOMINAL;2021;120.8;p;;0.0 -D;DG;WZ08-61-01;NOMINAL;2022;132.8;p;;0.0 +D;DG;WZ08-61-01;NOMINAL;2021;120.8;e;;0.0 +D;DG;WZ08-61-01;NOMINAL;2022;132.8;e;;0.0 +D;DG;WZ08-61-01;NOMINAL;2023;140.2;p;;0.0 D;DG;WZ08-61-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-61-01;REAL;2016;107.5;e;;0.0 D;DG;WZ08-61-01;REAL;2017;105.9;e;;0.0 D;DG;WZ08-61-01;REAL;2018;108.8;e;;0.0 D;DG;WZ08-61-01;REAL;2019;109.5;e;;0.0 -D;DG;WZ08-61-01;REAL;2020;107.4;e;;0.0 -D;DG;WZ08-61-01;REAL;2021;112.9;p;;0.0 -D;DG;WZ08-61-01;REAL;2022;121.1;p;;0.0 +D;DG;WZ08-61-01;REAL;2020;107.5;e;;0.0 +D;DG;WZ08-61-01;REAL;2021;112.9;e;;0.0 +D;DG;WZ08-61-01;REAL;2022;121.1;e;;0.0 +D;DG;WZ08-61-01;REAL;2023;123.9;p;;0.0 D;DG;WZ08-61-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-61-02;NOMINAL;2016;108.1;e;;0.0 D;DG;WZ08-61-02;NOMINAL;2017;106.5;e;;0.0 D;DG;WZ08-61-02;NOMINAL;2018;111.5;e;;0.0 D;DG;WZ08-61-02;NOMINAL;2019;114.4;e;;0.0 D;DG;WZ08-61-02;NOMINAL;2020;114.7;e;;0.0 -D;DG;WZ08-61-02;NOMINAL;2021;122.5;p;;0.0 -D;DG;WZ08-61-02;NOMINAL;2022;134.7;p;;0.0 +D;DG;WZ08-61-02;NOMINAL;2021;122.5;e;;0.0 +D;DG;WZ08-61-02;NOMINAL;2022;134.7;e;;0.0 +D;DG;WZ08-61-02;NOMINAL;2023;142.4;p;;0.0 D;DG;WZ08-61-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-61-02;REAL;2016;107.9;e;;0.0 D;DG;WZ08-61-02;REAL;2017;105.8;e;;0.0 D;DG;WZ08-61-02;REAL;2018;109.4;e;;0.0 D;DG;WZ08-61-02;REAL;2019;111.0;e;;0.0 D;DG;WZ08-61-02;REAL;2020;110.3;e;;0.0 -D;DG;WZ08-61-02;REAL;2021;115.4;p;;0.0 -D;DG;WZ08-61-02;REAL;2022;123.9;p;;0.0 +D;DG;WZ08-61-02;REAL;2021;115.4;e;;0.0 +D;DG;WZ08-61-02;REAL;2022;123.9;e;;0.0 +D;DG;WZ08-61-02;REAL;2023;127.2;p;;0.0 D;DG;WZ08-61-03;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-61-03;NOMINAL;2016;105.6;e;;0.0 D;DG;WZ08-61-03;NOMINAL;2017;111.6;e;;0.0 D;DG;WZ08-61-03;NOMINAL;2018;118.1;e;;0.0 D;DG;WZ08-61-03;NOMINAL;2019;122.6;e;;0.0 D;DG;WZ08-61-03;NOMINAL;2020;121.5;e;;0.0 -D;DG;WZ08-61-03;NOMINAL;2021;130.5;p;;0.0 -D;DG;WZ08-61-03;NOMINAL;2022;142.7;p;;0.0 +D;DG;WZ08-61-03;NOMINAL;2021;130.5;e;;0.0 +D;DG;WZ08-61-03;NOMINAL;2022;142.8;e;;0.0 +D;DG;WZ08-61-03;NOMINAL;2023;147.8;p;;0.0 D;DG;WZ08-61-03;REAL;2015;100.0;e;;0.0 D;DG;WZ08-61-03;REAL;2016;105.0;e;;0.0 D;DG;WZ08-61-03;REAL;2017;110.1;e;;0.0 D;DG;WZ08-61-03;REAL;2018;115.4;e;;0.0 D;DG;WZ08-61-03;REAL;2019;118.5;e;;0.0 D;DG;WZ08-61-03;REAL;2020;115.9;e;;0.0 -D;DG;WZ08-61-03;REAL;2021;122.3;p;;0.0 -D;DG;WZ08-61-03;REAL;2022;131.1;p;;0.0 +D;DG;WZ08-61-03;REAL;2021;122.3;e;;0.0 +D;DG;WZ08-61-03;REAL;2022;131.1;e;;0.0 +D;DG;WZ08-61-03;REAL;2023;131.5;p;;0.0 D;DG;WZ08-611;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-611;NOMINAL;2016;90.1;e;;0.0 D;DG;WZ08-611;NOMINAL;2017;89.3;e;;0.0 D;DG;WZ08-611;NOMINAL;2018;95.5;e;;0.0 D;DG;WZ08-611;NOMINAL;2019;89.9;e;;0.0 D;DG;WZ08-611;NOMINAL;2020;91.8;e;;0.0 -D;DG;WZ08-611;NOMINAL;2021;88.4;p;;0.0 -D;DG;WZ08-611;NOMINAL;2022;90.1;p;;0.0 +D;DG;WZ08-611;NOMINAL;2021;88.4;e;;0.0 +D;DG;WZ08-611;NOMINAL;2022;90.1;e;;0.0 +D;DG;WZ08-611;NOMINAL;2023;92.1;p;;0.0 D;DG;WZ08-611;REAL;2015;100.0;e;;0.0 D;DG;WZ08-611;REAL;2016;91.1;e;;0.0 D;DG;WZ08-611;REAL;2017;91.5;e;;0.0 D;DG;WZ08-611;REAL;2018;96.1;e;;0.0 D;DG;WZ08-611;REAL;2019;89.4;e;;0.0 -D;DG;WZ08-611;REAL;2020;89.9;e;;0.0 -D;DG;WZ08-611;REAL;2021;83.7;p;;0.0 -D;DG;WZ08-611;REAL;2022;82.7;p;;0.0 +D;DG;WZ08-611;REAL;2020;90.0;e;;0.0 +D;DG;WZ08-611;REAL;2021;83.7;e;;0.0 +D;DG;WZ08-611;REAL;2022;82.8;e;;0.0 +D;DG;WZ08-611;REAL;2023;83.4;p;;0.0 D;DG;WZ08-612;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-612;NOMINAL;2016;174.5;e;;0.0 D;DG;WZ08-612;NOMINAL;2017;80.1;e;;0.0 D;DG;WZ08-612;NOMINAL;2018;83.5;e;;0.0 D;DG;WZ08-612;NOMINAL;2019;81.8;e;;0.0 D;DG;WZ08-612;NOMINAL;2020;84.3;e;;0.0 -D;DG;WZ08-612;NOMINAL;2021;86.4;p;;0.0 -D;DG;WZ08-612;NOMINAL;2022;92.0;p;;0.0 +D;DG;WZ08-612;NOMINAL;2021;86.4;e;;0.0 +D;DG;WZ08-612;NOMINAL;2022;92.0;e;;0.0 +D;DG;WZ08-612;NOMINAL;2023;92.0;p;;0.0 D;DG;WZ08-612;REAL;2015;100.0;e;;0.0 D;DG;WZ08-612;REAL;2016;176.4;e;;0.0 D;DG;WZ08-612;REAL;2017;82.1;e;;0.0 D;DG;WZ08-612;REAL;2018;84.0;e;;0.0 D;DG;WZ08-612;REAL;2019;81.4;e;;0.0 D;DG;WZ08-612;REAL;2020;82.6;e;;0.0 -D;DG;WZ08-612;REAL;2021;81.9;p;;0.0 -D;DG;WZ08-612;REAL;2022;84.4;p;;0.0 +D;DG;WZ08-612;REAL;2021;81.9;e;;0.0 +D;DG;WZ08-612;REAL;2022;84.5;e;;0.0 +D;DG;WZ08-612;REAL;2023;83.4;p;;0.0 D;DG;WZ08-613;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-613;NOMINAL;2016;87.1;e;;0.0 D;DG;WZ08-613;NOMINAL;2017;117.2;e;;0.0 D;DG;WZ08-613;NOMINAL;2018;149.1;e;;0.0 D;DG;WZ08-613;NOMINAL;2019;136.1;e;;0.0 D;DG;WZ08-613;NOMINAL;2020;98.6;e;;0.0 -D;DG;WZ08-613;NOMINAL;2021;97.8;p;;0.0 -D;DG;WZ08-613;NOMINAL;2022;97.7;p;;0.0 +D;DG;WZ08-613;NOMINAL;2021;97.8;e;;0.0 +D;DG;WZ08-613;NOMINAL;2022;97.6;e;;0.0 +D;DG;WZ08-613;NOMINAL;2023;109.4;p;;0.0 D;DG;WZ08-613;REAL;2015;100.0;e;;0.0 D;DG;WZ08-613;REAL;2016;88.0;e;;0.0 D;DG;WZ08-613;REAL;2017;120.1;e;;0.0 D;DG;WZ08-613;REAL;2018;150.0;e;;0.0 D;DG;WZ08-613;REAL;2019;135.3;e;;0.0 D;DG;WZ08-613;REAL;2020;96.6;e;;0.0 -D;DG;WZ08-613;REAL;2021;92.7;p;;0.0 -D;DG;WZ08-613;REAL;2022;89.6;p;;0.0 +D;DG;WZ08-613;REAL;2021;92.7;e;;0.0 +D;DG;WZ08-613;REAL;2022;89.7;e;;0.0 +D;DG;WZ08-613;REAL;2023;99.1;p;;0.0 D;DG;WZ08-619;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-619;NOMINAL;2016;95.4;e;;0.0 D;DG;WZ08-619;NOMINAL;2017;94.0;e;;0.0 D;DG;WZ08-619;NOMINAL;2018;95.1;e;;0.0 D;DG;WZ08-619;NOMINAL;2019;93.4;e;;0.0 D;DG;WZ08-619;NOMINAL;2020;96.0;e;;0.0 -D;DG;WZ08-619;NOMINAL;2021;93.6;p;;0.0 -D;DG;WZ08-619;NOMINAL;2022;95.2;p;;0.0 +D;DG;WZ08-619;NOMINAL;2021;93.6;e;;0.0 +D;DG;WZ08-619;NOMINAL;2022;95.2;e;;0.0 +D;DG;WZ08-619;NOMINAL;2023;114.6;p;;0.0 D;DG;WZ08-619;REAL;2015;100.0;e;;0.0 D;DG;WZ08-619;REAL;2016;96.5;e;;0.0 D;DG;WZ08-619;REAL;2017;96.2;e;;0.0 D;DG;WZ08-619;REAL;2018;95.7;e;;0.0 D;DG;WZ08-619;REAL;2019;92.9;e;;0.0 D;DG;WZ08-619;REAL;2020;94.0;e;;0.0 -D;DG;WZ08-619;REAL;2021;88.6;p;;0.0 -D;DG;WZ08-619;REAL;2022;87.3;p;;0.0 +D;DG;WZ08-619;REAL;2021;88.6;e;;0.0 +D;DG;WZ08-619;REAL;2022;87.5;e;;0.0 +D;DG;WZ08-619;REAL;2023;103.9;p;;0.0 D;DG;WZ08-61;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-61;NOMINAL;2016;115.3;e;;0.0 D;DG;WZ08-61;NOMINAL;2017;87.6;e;;0.0 D;DG;WZ08-61;NOMINAL;2018;92.3;e;;0.0 D;DG;WZ08-61;NOMINAL;2019;88.5;e;;0.0 D;DG;WZ08-61;NOMINAL;2020;90.4;e;;0.0 -D;DG;WZ08-61;NOMINAL;2021;88.8;p;;0.0 -D;DG;WZ08-61;NOMINAL;2022;91.6;p;;0.0 +D;DG;WZ08-61;NOMINAL;2021;88.8;e;;0.0 +D;DG;WZ08-61;NOMINAL;2022;91.5;e;;0.0 +D;DG;WZ08-61;NOMINAL;2023;96.0;p;;0.0 D;DG;WZ08-61;REAL;2015;100.0;e;;0.0 D;DG;WZ08-61;REAL;2016;116.5;e;;0.0 D;DG;WZ08-61;REAL;2017;89.8;e;;0.0 D;DG;WZ08-61;REAL;2018;92.9;e;;0.0 D;DG;WZ08-61;REAL;2019;88.0;e;;0.0 -D;DG;WZ08-61;REAL;2020;88.5;e;;0.0 -D;DG;WZ08-61;REAL;2021;84.1;p;;0.0 -D;DG;WZ08-61;REAL;2022;84.0;p;;0.0 +D;DG;WZ08-61;REAL;2020;88.6;e;;0.0 +D;DG;WZ08-61;REAL;2021;84.1;e;;0.0 +D;DG;WZ08-61;REAL;2022;84.1;e;;0.0 +D;DG;WZ08-61;REAL;2023;87.0;p;;0.0 D;DG;WZ08-6201;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6201;NOMINAL;2016;109.9;e;;0.0 D;DG;WZ08-6201;NOMINAL;2017;116.8;e;;0.0 D;DG;WZ08-6201;NOMINAL;2018;127.1;e;;0.0 D;DG;WZ08-6201;NOMINAL;2019;136.9;e;;0.0 D;DG;WZ08-6201;NOMINAL;2020;135.0;e;;0.0 -D;DG;WZ08-6201;NOMINAL;2021;150.1;p;;0.0 -D;DG;WZ08-6201;NOMINAL;2022;172.8;p;;0.0 +D;DG;WZ08-6201;NOMINAL;2021;150.1;e;;0.0 +D;DG;WZ08-6201;NOMINAL;2022;172.7;e;;0.0 +D;DG;WZ08-6201;NOMINAL;2023;184.5;p;;0.0 D;DG;WZ08-6202;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6202;NOMINAL;2016;108.6;e;;0.0 D;DG;WZ08-6202;NOMINAL;2017;123.4;e;;0.0 D;DG;WZ08-6202;NOMINAL;2018;133.0;e;;0.0 D;DG;WZ08-6202;NOMINAL;2019;139.0;e;;0.0 D;DG;WZ08-6202;NOMINAL;2020;141.3;e;;0.0 -D;DG;WZ08-6202;NOMINAL;2021;153.1;p;;0.0 -D;DG;WZ08-6202;NOMINAL;2022;170.5;p;;0.0 +D;DG;WZ08-6202;NOMINAL;2021;153.1;e;;0.0 +D;DG;WZ08-6202;NOMINAL;2022;170.4;e;;0.0 +D;DG;WZ08-6202;NOMINAL;2023;174.3;p;;0.0 D;DG;WZ08-6203;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6203;NOMINAL;2016;104.5;e;;0.0 D;DG;WZ08-6203;NOMINAL;2017;107.9;e;;0.0 D;DG;WZ08-6203;NOMINAL;2018;101.6;e;;0.0 D;DG;WZ08-6203;NOMINAL;2019;106.9;e;;0.0 D;DG;WZ08-6203;NOMINAL;2020;111.9;e;;0.0 -D;DG;WZ08-6203;NOMINAL;2021;114.3;p;;0.0 -D;DG;WZ08-6203;NOMINAL;2022;117.0;p;;0.0 +D;DG;WZ08-6203;NOMINAL;2021;114.3;e;;0.0 +D;DG;WZ08-6203;NOMINAL;2022;117.8;e;;0.0 +D;DG;WZ08-6203;NOMINAL;2023;129.8;p;;0.0 D;DG;WZ08-6209;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6209;NOMINAL;2016;100.8;e;;0.0 D;DG;WZ08-6209;NOMINAL;2017;101.9;e;;0.0 D;DG;WZ08-6209;NOMINAL;2018;118.9;e;;0.0 D;DG;WZ08-6209;NOMINAL;2019;115.5;e;;0.0 D;DG;WZ08-6209;NOMINAL;2020;115.7;e;;0.0 -D;DG;WZ08-6209;NOMINAL;2021;126.0;p;;0.0 -D;DG;WZ08-6209;NOMINAL;2022;138.4;p;;0.0 +D;DG;WZ08-6209;NOMINAL;2021;126.0;e;;0.0 +D;DG;WZ08-6209;NOMINAL;2022;138.3;e;;0.0 +D;DG;WZ08-6209;NOMINAL;2023;145.4;p;;0.0 D;DG;WZ08-620;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-620;NOMINAL;2016;106.3;e;;0.0 D;DG;WZ08-620;NOMINAL;2017;112.6;e;;0.0 D;DG;WZ08-620;NOMINAL;2018;123.2;e;;0.0 D;DG;WZ08-620;NOMINAL;2019;127.7;e;;0.0 D;DG;WZ08-620;NOMINAL;2020;128.0;e;;0.0 -D;DG;WZ08-620;NOMINAL;2021;139.7;p;;0.0 -D;DG;WZ08-620;NOMINAL;2022;156.1;p;;0.0 +D;DG;WZ08-620;NOMINAL;2021;139.7;e;;0.0 +D;DG;WZ08-620;NOMINAL;2022;156.1;e;;0.0 +D;DG;WZ08-620;NOMINAL;2023;164.9;p;;0.0 D;DG;WZ08-620;REAL;2015;100.0;e;;0.0 D;DG;WZ08-620;REAL;2016;106.8;e;;0.0 D;DG;WZ08-620;REAL;2017;113.0;e;;0.0 D;DG;WZ08-620;REAL;2018;122.9;e;;0.0 D;DG;WZ08-620;REAL;2019;126.7;e;;0.0 D;DG;WZ08-620;REAL;2020;126.6;e;;0.0 -D;DG;WZ08-620;REAL;2021;137.4;p;;0.0 -D;DG;WZ08-620;REAL;2022;151.9;p;;0.0 +D;DG;WZ08-620;REAL;2021;137.4;e;;0.0 +D;DG;WZ08-620;REAL;2022;152.0;e;;0.0 +D;DG;WZ08-620;REAL;2023;156.8;p;;0.0 D;DG;WZ08-62;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-62;NOMINAL;2016;106.3;e;;0.0 D;DG;WZ08-62;NOMINAL;2017;112.6;e;;0.0 D;DG;WZ08-62;NOMINAL;2018;123.2;e;;0.0 D;DG;WZ08-62;NOMINAL;2019;127.7;e;;0.0 D;DG;WZ08-62;NOMINAL;2020;128.0;e;;0.0 -D;DG;WZ08-62;NOMINAL;2021;139.7;p;;0.0 -D;DG;WZ08-62;NOMINAL;2022;156.1;p;;0.0 +D;DG;WZ08-62;NOMINAL;2021;139.7;e;;0.0 +D;DG;WZ08-62;NOMINAL;2022;156.1;e;;0.0 +D;DG;WZ08-62;NOMINAL;2023;164.9;p;;0.0 D;DG;WZ08-62;REAL;2015;100.0;e;;0.0 D;DG;WZ08-62;REAL;2016;106.8;e;;0.0 D;DG;WZ08-62;REAL;2017;113.0;e;;0.0 D;DG;WZ08-62;REAL;2018;122.9;e;;0.0 D;DG;WZ08-62;REAL;2019;126.7;e;;0.0 D;DG;WZ08-62;REAL;2020;126.6;e;;0.0 -D;DG;WZ08-62;REAL;2021;137.4;p;;0.0 -D;DG;WZ08-62;REAL;2022;151.9;p;;0.0 +D;DG;WZ08-62;REAL;2021;137.4;e;;0.0 +D;DG;WZ08-62;REAL;2022;152.0;e;;0.0 +D;DG;WZ08-62;REAL;2023;156.8;p;;0.0 D;DG;WZ08-63-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-63-01;NOMINAL;2016;107.9;e;;0.0 D;DG;WZ08-63-01;NOMINAL;2017;107.5;e;;0.0 D;DG;WZ08-63-01;NOMINAL;2018;117.8;e;;0.0 D;DG;WZ08-63-01;NOMINAL;2019;119.6;e;;0.0 D;DG;WZ08-63-01;NOMINAL;2020;114.2;e;;0.0 -D;DG;WZ08-63-01;NOMINAL;2021;130.7;p;;0.0 -D;DG;WZ08-63-01;NOMINAL;2022;144.6;p;;0.0 +D;DG;WZ08-63-01;NOMINAL;2021;130.7;e;;0.0 +D;DG;WZ08-63-01;NOMINAL;2022;144.6;e;;0.0 +D;DG;WZ08-63-01;NOMINAL;2023;160.2;p;;0.0 D;DG;WZ08-63-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-63-01;REAL;2016;106.4;e;;0.0 D;DG;WZ08-63-01;REAL;2017;104.9;e;;0.0 D;DG;WZ08-63-01;REAL;2018;113.5;e;;0.0 D;DG;WZ08-63-01;REAL;2019;114.7;e;;0.0 D;DG;WZ08-63-01;REAL;2020;109.8;e;;0.0 -D;DG;WZ08-63-01;REAL;2021;123.1;p;;0.0 -D;DG;WZ08-63-01;REAL;2022;134.1;p;;0.0 +D;DG;WZ08-63-01;REAL;2021;123.1;e;;0.0 +D;DG;WZ08-63-01;REAL;2022;134.2;e;;0.0 +D;DG;WZ08-63-01;REAL;2023;144.3;p;;0.0 D;DG;WZ08-63-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-63-02;NOMINAL;2016;111.0;e;;0.0 D;DG;WZ08-63-02;NOMINAL;2017;116.8;e;;0.0 D;DG;WZ08-63-02;NOMINAL;2018;142.3;e;;0.0 D;DG;WZ08-63-02;NOMINAL;2019;141.3;e;;0.0 D;DG;WZ08-63-02;NOMINAL;2020;151.6;e;;0.0 -D;DG;WZ08-63-02;NOMINAL;2021;172.3;p;;0.0 -D;DG;WZ08-63-02;NOMINAL;2022;195.6;p;;0.0 +D;DG;WZ08-63-02;NOMINAL;2021;172.3;e;;0.0 +D;DG;WZ08-63-02;NOMINAL;2022;195.7;e;;0.0 +D;DG;WZ08-63-02;NOMINAL;2023;228.2;p;;0.0 D;DG;WZ08-63-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-63-02;REAL;2016;112.2;e;;0.0 D;DG;WZ08-63-02;REAL;2017;118.5;e;;0.0 D;DG;WZ08-63-02;REAL;2018;145.0;e;;0.0 D;DG;WZ08-63-02;REAL;2019;145.1;e;;0.0 D;DG;WZ08-63-02;REAL;2020;155.9;e;;0.0 -D;DG;WZ08-63-02;REAL;2021;177.1;p;;0.0 -D;DG;WZ08-63-02;REAL;2022;200.5;p;;0.0 +D;DG;WZ08-63-02;REAL;2021;177.1;e;;0.0 +D;DG;WZ08-63-02;REAL;2022;200.9;e;;0.0 +D;DG;WZ08-63-02;REAL;2023;226.6;p;;0.0 D;DG;WZ08-63-03;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-63-03;NOMINAL;2016;106.4;e;;0.0 D;DG;WZ08-63-03;NOMINAL;2017;109.2;e;;0.0 D;DG;WZ08-63-03;NOMINAL;2018;119.9;e;;0.0 D;DG;WZ08-63-03;NOMINAL;2019;123.3;e;;0.0 D;DG;WZ08-63-03;NOMINAL;2020;121.6;e;;0.0 -D;DG;WZ08-63-03;NOMINAL;2021;134.7;p;;0.0 -D;DG;WZ08-63-03;NOMINAL;2022;150.2;p;;0.0 +D;DG;WZ08-63-03;NOMINAL;2021;134.7;e;;0.0 +D;DG;WZ08-63-03;NOMINAL;2022;150.2;e;;0.0 +D;DG;WZ08-63-03;NOMINAL;2023;161.9;p;;0.0 D;DG;WZ08-63-03;REAL;2015;100.0;e;;0.0 D;DG;WZ08-63-03;REAL;2016;106.3;e;;0.0 D;DG;WZ08-63-03;REAL;2017;108.7;e;;0.0 D;DG;WZ08-63-03;REAL;2018;118.4;e;;0.0 D;DG;WZ08-63-03;REAL;2019;121.2;e;;0.0 D;DG;WZ08-63-03;REAL;2020;119.4;e;;0.0 -D;DG;WZ08-63-03;REAL;2021;130.9;p;;0.0 -D;DG;WZ08-63-03;REAL;2022;144.3;p;;0.0 +D;DG;WZ08-63-03;REAL;2021;130.9;e;;0.0 +D;DG;WZ08-63-03;REAL;2022;144.3;e;;0.0 +D;DG;WZ08-63-03;REAL;2023;151.6;p;;0.0 D;DG;WZ08-63-04;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-63-04;NOMINAL;2016;106.3;e;;0.0 D;DG;WZ08-63-04;NOMINAL;2017;110.7;e;;0.0 D;DG;WZ08-63-04;NOMINAL;2018;123.1;e;;0.0 D;DG;WZ08-63-04;NOMINAL;2019;126.6;e;;0.0 D;DG;WZ08-63-04;NOMINAL;2020;127.5;e;;0.0 -D;DG;WZ08-63-04;NOMINAL;2021;140.1;p;;0.0 -D;DG;WZ08-63-04;NOMINAL;2022;157.1;p;;0.0 +D;DG;WZ08-63-04;NOMINAL;2021;140.1;e;;0.0 +D;DG;WZ08-63-04;NOMINAL;2022;157.1;e;;0.0 +D;DG;WZ08-63-04;NOMINAL;2023;169.5;p;;0.0 D;DG;WZ08-63-04;REAL;2015;100.0;e;;0.0 D;DG;WZ08-63-04;REAL;2016;106.9;e;;0.0 D;DG;WZ08-63-04;REAL;2017;111.1;e;;0.0 D;DG;WZ08-63-04;REAL;2018;123.0;e;;0.0 D;DG;WZ08-63-04;REAL;2019;126.1;e;;0.0 D;DG;WZ08-63-04;REAL;2020;126.7;e;;0.0 -D;DG;WZ08-63-04;REAL;2021;138.6;p;;0.0 -D;DG;WZ08-63-04;REAL;2022;154.0;p;;0.0 +D;DG;WZ08-63-04;REAL;2021;138.6;e;;0.0 +D;DG;WZ08-63-04;REAL;2022;154.1;e;;0.0 +D;DG;WZ08-63-04;REAL;2023;162.3;p;;0.0 D;DG;WZ08-6311;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6311;NOMINAL;2016;110.7;e;;0.0 D;DG;WZ08-6311;NOMINAL;2017;105.2;e;;0.0 D;DG;WZ08-6311;NOMINAL;2018;118.5;e;;0.0 D;DG;WZ08-6311;NOMINAL;2019;132.7;e;;0.0 D;DG;WZ08-6311;NOMINAL;2020;155.4;e;;0.0 -D;DG;WZ08-6311;NOMINAL;2021;170.9;p;;0.0 -D;DG;WZ08-6311;NOMINAL;2022;199.6;p;;0.0 +D;DG;WZ08-6311;NOMINAL;2021;170.9;e;;0.0 +D;DG;WZ08-6311;NOMINAL;2022;199.6;e;;0.0 +D;DG;WZ08-6311;NOMINAL;2023;251.9;p;;0.0 D;DG;WZ08-6312;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6312;NOMINAL;2016;117.2;e;;0.0 D;DG;WZ08-6312;NOMINAL;2017;141.7;e;;0.0 D;DG;WZ08-6312;NOMINAL;2018;206.2;e;;0.0 D;DG;WZ08-6312;NOMINAL;2019;181.6;e;;0.0 D;DG;WZ08-6312;NOMINAL;2020;186.4;e;;0.0 -D;DG;WZ08-6312;NOMINAL;2021;220.8;p;;0.0 -D;DG;WZ08-6312;NOMINAL;2022;245.0;p;;0.0 +D;DG;WZ08-6312;NOMINAL;2021;220.8;e;;0.0 +D;DG;WZ08-6312;NOMINAL;2022;245.2;e;;0.0 +D;DG;WZ08-6312;NOMINAL;2023;266.8;p;;0.0 D;DG;WZ08-631;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-631;NOMINAL;2016;113.2;e;;0.0 D;DG;WZ08-631;NOMINAL;2017;119.0;e;;0.0 D;DG;WZ08-631;NOMINAL;2018;151.7;e;;0.0 D;DG;WZ08-631;NOMINAL;2019;151.2;e;;0.0 D;DG;WZ08-631;NOMINAL;2020;167.1;e;;0.0 -D;DG;WZ08-631;NOMINAL;2021;189.8;p;;0.0 -D;DG;WZ08-631;NOMINAL;2022;216.8;p;;0.0 +D;DG;WZ08-631;NOMINAL;2021;189.8;e;;0.0 +D;DG;WZ08-631;NOMINAL;2022;216.9;e;;0.0 +D;DG;WZ08-631;NOMINAL;2023;257.5;p;;0.0 D;DG;WZ08-631;REAL;2015;100.0;e;;0.0 D;DG;WZ08-631;REAL;2016;115.0;e;;0.0 D;DG;WZ08-631;REAL;2017;121.4;e;;0.0 D;DG;WZ08-631;REAL;2018;155.4;e;;0.0 D;DG;WZ08-631;REAL;2019;156.5;e;;0.0 D;DG;WZ08-631;REAL;2020;173.1;e;;0.0 -D;DG;WZ08-631;REAL;2021;196.7;p;;0.0 -D;DG;WZ08-631;REAL;2022;224.7;p;;0.0 +D;DG;WZ08-631;REAL;2021;196.7;e;;0.0 +D;DG;WZ08-631;REAL;2022;225.0;e;;0.0 +D;DG;WZ08-631;REAL;2023;258.2;p;;0.0 D;DG;WZ08-6391;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6391;NOMINAL;2016;81.1;e;;0.0 D;DG;WZ08-6391;NOMINAL;2017;77.3;e;;0.0 D;DG;WZ08-6391;NOMINAL;2018;77.1;e;;0.0 D;DG;WZ08-6391;NOMINAL;2019;90.4;e;;0.0 D;DG;WZ08-6391;NOMINAL;2020;76.6;e;;0.0 -D;DG;WZ08-6391;NOMINAL;2021;76.7;p;;0.0 -D;DG;WZ08-6391;NOMINAL;2022;77.1;p;;0.0 +D;DG;WZ08-6391;NOMINAL;2021;76.7;e;;0.0 +D;DG;WZ08-6391;NOMINAL;2022;77.1;e;;0.0 +D;DG;WZ08-6391;NOMINAL;2023;72.5;p;;0.0 D;DG;WZ08-6399;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6399;NOMINAL;2016;262.5;e;;0.0 D;DG;WZ08-6399;NOMINAL;2017;219.6;e;;0.0 D;DG;WZ08-6399;NOMINAL;2018;112.3;e;;0.0 D;DG;WZ08-6399;NOMINAL;2019;105.0;e;;0.0 D;DG;WZ08-6399;NOMINAL;2020;86.4;e;;0.0 -D;DG;WZ08-6399;NOMINAL;2021;104.4;p;;0.0 -D;DG;WZ08-6399;NOMINAL;2022;108.0;p;;0.0 +D;DG;WZ08-6399;NOMINAL;2021;104.4;e;;0.0 +D;DG;WZ08-6399;NOMINAL;2022;108.0;e;;0.0 +D;DG;WZ08-6399;NOMINAL;2023;110.4;p;;0.0 D;DG;WZ08-639;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-639;NOMINAL;2016;236.8;e;;0.0 D;DG;WZ08-639;NOMINAL;2017;199.4;e;;0.0 D;DG;WZ08-639;NOMINAL;2018;107.3;e;;0.0 D;DG;WZ08-639;NOMINAL;2019;103.0;e;;0.0 D;DG;WZ08-639;NOMINAL;2020;85.0;e;;0.0 -D;DG;WZ08-639;NOMINAL;2021;100.5;p;;0.0 -D;DG;WZ08-639;NOMINAL;2022;103.6;p;;0.0 +D;DG;WZ08-639;NOMINAL;2021;100.5;e;;0.0 +D;DG;WZ08-639;NOMINAL;2022;103.6;e;;0.0 +D;DG;WZ08-639;NOMINAL;2023;105.0;p;;0.0 D;DG;WZ08-639;REAL;2015;100.0;e;;0.0 D;DG;WZ08-639;REAL;2016;235.2;e;;0.0 D;DG;WZ08-639;REAL;2017;197.0;e;;0.0 D;DG;WZ08-639;REAL;2018;105.3;e;;0.0 D;DG;WZ08-639;REAL;2019;99.9;e;;0.0 D;DG;WZ08-639;REAL;2020;81.5;e;;0.0 -D;DG;WZ08-639;REAL;2021;96.1;p;;0.0 -D;DG;WZ08-639;REAL;2022;96.4;p;;0.0 +D;DG;WZ08-639;REAL;2021;96.1;e;;0.0 +D;DG;WZ08-639;REAL;2022;96.4;e;;0.0 +D;DG;WZ08-639;REAL;2023;95.1;p;;0.0 D;DG;WZ08-63;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-63;NOMINAL;2016;154.8;e;;0.0 D;DG;WZ08-63;NOMINAL;2017;146.1;e;;0.0 D;DG;WZ08-63;NOMINAL;2018;136.7;e;;0.0 D;DG;WZ08-63;NOMINAL;2019;135.0;e;;0.0 D;DG;WZ08-63;NOMINAL;2020;139.5;e;;0.0 -D;DG;WZ08-63;NOMINAL;2021;159.7;p;;0.0 -D;DG;WZ08-63;NOMINAL;2022;178.7;p;;0.0 +D;DG;WZ08-63;NOMINAL;2021;159.7;e;;0.0 +D;DG;WZ08-63;NOMINAL;2022;178.8;e;;0.0 +D;DG;WZ08-63;NOMINAL;2023;206.2;p;;0.0 D;DG;WZ08-63;REAL;2015;100.0;e;;0.0 D;DG;WZ08-63;REAL;2016;155.4;e;;0.0 D;DG;WZ08-63;REAL;2017;146.9;e;;0.0 D;DG;WZ08-63;REAL;2018;138.5;e;;0.0 D;DG;WZ08-63;REAL;2019;137.5;e;;0.0 D;DG;WZ08-63;REAL;2020;142.3;e;;0.0 -D;DG;WZ08-63;REAL;2021;162.9;p;;0.0 -D;DG;WZ08-63;REAL;2022;181.6;p;;0.0 +D;DG;WZ08-63;REAL;2021;162.9;e;;0.0 +D;DG;WZ08-63;REAL;2022;181.7;e;;0.0 +D;DG;WZ08-63;REAL;2023;203.4;p;;0.0 D;DG;WZ08-681;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-681;NOMINAL;2016;96.6;e;;0.0 D;DG;WZ08-681;NOMINAL;2017;80.0;e;;0.0 D;DG;WZ08-681;NOMINAL;2018;91.8;e;;0.0 D;DG;WZ08-681;NOMINAL;2019;95.0;e;;0.0 D;DG;WZ08-681;NOMINAL;2020;69.4;e;;0.0 -D;DG;WZ08-681;NOMINAL;2021;72.1;p;;0.0 -D;DG;WZ08-681;NOMINAL;2022;73.5;p;;0.0 +D;DG;WZ08-681;NOMINAL;2021;72.1;e;;0.0 +D;DG;WZ08-681;NOMINAL;2022;73.5;e;;0.0 +D;DG;WZ08-681;NOMINAL;2023;72.9;p;;0.0 D;DG;WZ08-681;REAL;2015;100.0;e;;0.0 D;DG;WZ08-681;REAL;2016;95.5;e;;0.0 D;DG;WZ08-681;REAL;2017;78.0;e;;0.0 D;DG;WZ08-681;REAL;2018;88.2;e;;0.0 D;DG;WZ08-681;REAL;2019;90.0;e;;0.0 D;DG;WZ08-681;REAL;2020;64.9;e;;0.0 -D;DG;WZ08-681;REAL;2021;66.4;p;;0.0 -D;DG;WZ08-681;REAL;2022;66.6;p;;0.0 +D;DG;WZ08-681;REAL;2021;66.4;e;;0.0 +D;DG;WZ08-681;REAL;2022;66.6;e;;0.0 +D;DG;WZ08-681;REAL;2023;64.9;p;;0.0 D;DG;WZ08-682;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-682;NOMINAL;2016;109.9;e;;0.0 D;DG;WZ08-682;NOMINAL;2017;109.6;e;;0.0 D;DG;WZ08-682;NOMINAL;2018;108.4;e;;0.0 D;DG;WZ08-682;NOMINAL;2019;112.9;e;;0.0 D;DG;WZ08-682;NOMINAL;2020;76.9;e;;0.0 -D;DG;WZ08-682;NOMINAL;2021;89.0;p;;0.0 -D;DG;WZ08-682;NOMINAL;2022;94.9;p;;0.0 +D;DG;WZ08-682;NOMINAL;2021;89.0;e;;0.0 +D;DG;WZ08-682;NOMINAL;2022;95.0;e;;0.0 +D;DG;WZ08-682;NOMINAL;2023;96.1;p;;0.0 D;DG;WZ08-682;REAL;2015;100.0;e;;0.0 D;DG;WZ08-682;REAL;2016;108.6;e;;0.0 D;DG;WZ08-682;REAL;2017;106.9;e;;0.0 D;DG;WZ08-682;REAL;2018;104.1;e;;0.0 D;DG;WZ08-682;REAL;2019;107.0;e;;0.0 D;DG;WZ08-682;REAL;2020;71.8;e;;0.0 -D;DG;WZ08-682;REAL;2021;82.0;p;;0.0 -D;DG;WZ08-682;REAL;2022;86.0;p;;0.0 +D;DG;WZ08-682;REAL;2021;82.0;e;;0.0 +D;DG;WZ08-682;REAL;2022;86.0;e;;0.0 +D;DG;WZ08-682;REAL;2023;85.6;p;;0.0 D;DG;WZ08-6831;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6831;NOMINAL;2016;98.5;e;;0.0 D;DG;WZ08-6831;NOMINAL;2017;100.1;e;;0.0 D;DG;WZ08-6831;NOMINAL;2018;106.4;e;;0.0 D;DG;WZ08-6831;NOMINAL;2019;116.4;e;;0.0 D;DG;WZ08-6831;NOMINAL;2020;113.2;e;;0.0 -D;DG;WZ08-6831;NOMINAL;2021;119.8;p;;0.0 -D;DG;WZ08-6831;NOMINAL;2022;119.7;p;;0.0 +D;DG;WZ08-6831;NOMINAL;2021;119.8;e;;0.0 +D;DG;WZ08-6831;NOMINAL;2022;119.7;e;;0.0 +D;DG;WZ08-6831;NOMINAL;2023;105.9;p;;0.0 D;DG;WZ08-6832;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-6832;NOMINAL;2016;101.7;e;;0.0 D;DG;WZ08-6832;NOMINAL;2017;103.4;e;;0.0 D;DG;WZ08-6832;NOMINAL;2018;125.4;e;;0.0 D;DG;WZ08-6832;NOMINAL;2019;114.4;e;;0.0 D;DG;WZ08-6832;NOMINAL;2020;118.0;e;;0.0 -D;DG;WZ08-6832;NOMINAL;2021;118.3;p;;0.0 -D;DG;WZ08-6832;NOMINAL;2022;127.1;p;;0.0 +D;DG;WZ08-6832;NOMINAL;2021;118.3;e;;0.0 +D;DG;WZ08-6832;NOMINAL;2022;127.0;e;;0.0 +D;DG;WZ08-6832;NOMINAL;2023;129.5;p;;0.0 D;DG;WZ08-683;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-683;NOMINAL;2016;100.4;e;;0.0 D;DG;WZ08-683;NOMINAL;2017;102.1;e;;0.0 D;DG;WZ08-683;NOMINAL;2018;117.8;e;;0.0 D;DG;WZ08-683;NOMINAL;2019;115.2;e;;0.0 D;DG;WZ08-683;NOMINAL;2020;116.0;e;;0.0 -D;DG;WZ08-683;NOMINAL;2021;118.9;p;;0.0 -D;DG;WZ08-683;NOMINAL;2022;124.1;p;;0.0 +D;DG;WZ08-683;NOMINAL;2021;118.9;e;;0.0 +D;DG;WZ08-683;NOMINAL;2022;124.0;e;;0.0 +D;DG;WZ08-683;NOMINAL;2023;120.0;p;;0.0 D;DG;WZ08-683;REAL;2015;100.0;e;;0.0 D;DG;WZ08-683;REAL;2016;99.3;e;;0.0 D;DG;WZ08-683;REAL;2017;99.5;e;;0.0 D;DG;WZ08-683;REAL;2018;113.2;e;;0.0 D;DG;WZ08-683;REAL;2019;109.2;e;;0.0 D;DG;WZ08-683;REAL;2020;108.4;e;;0.0 -D;DG;WZ08-683;REAL;2021;109.6;p;;0.0 -D;DG;WZ08-683;REAL;2022;112.5;p;;0.0 +D;DG;WZ08-683;REAL;2021;109.6;e;;0.0 +D;DG;WZ08-683;REAL;2022;112.4;e;;0.0 +D;DG;WZ08-683;REAL;2023;106.8;p;;0.0 D;DG;WZ08-68;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-68;NOMINAL;2016;107.2;e;;0.0 D;DG;WZ08-68;NOMINAL;2017;105.8;e;;0.0 D;DG;WZ08-68;NOMINAL;2018;108.4;e;;0.0 D;DG;WZ08-68;NOMINAL;2019;111.7;e;;0.0 D;DG;WZ08-68;NOMINAL;2020;82.5;e;;0.0 -D;DG;WZ08-68;NOMINAL;2021;92.3;p;;0.0 -D;DG;WZ08-68;NOMINAL;2022;97.7;p;;0.0 +D;DG;WZ08-68;NOMINAL;2021;92.3;e;;0.0 +D;DG;WZ08-68;NOMINAL;2022;97.7;e;;0.0 +D;DG;WZ08-68;NOMINAL;2023;97.9;p;;0.0 D;DG;WZ08-68;REAL;2015;100.0;e;;0.0 D;DG;WZ08-68;REAL;2016;106.0;e;;0.0 D;DG;WZ08-68;REAL;2017;103.2;e;;0.0 D;DG;WZ08-68;REAL;2018;104.2;e;;0.0 D;DG;WZ08-68;REAL;2019;105.8;e;;0.0 D;DG;WZ08-68;REAL;2020;77.1;e;;0.0 -D;DG;WZ08-68;REAL;2021;85.1;p;;0.0 -D;DG;WZ08-68;REAL;2022;88.5;p;;0.0 +D;DG;WZ08-68;REAL;2021;85.1;e;;0.0 +D;DG;WZ08-68;REAL;2022;88.5;e;;0.0 +D;DG;WZ08-68;REAL;2023;87.2;p;;0.0 D;DG;WZ08-69-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-69-01;NOMINAL;2016;105.5;e;;0.0 D;DG;WZ08-69-01;NOMINAL;2017;109.5;e;;0.0 D;DG;WZ08-69-01;NOMINAL;2018;115.5;e;;0.0 D;DG;WZ08-69-01;NOMINAL;2019;119.1;e;;0.0 D;DG;WZ08-69-01;NOMINAL;2020;121.0;e;;0.0 -D;DG;WZ08-69-01;NOMINAL;2021;129.6;p;;0.0 -D;DG;WZ08-69-01;NOMINAL;2022;140.7;p;;0.0 +D;DG;WZ08-69-01;NOMINAL;2021;129.6;e;;0.0 +D;DG;WZ08-69-01;NOMINAL;2022;140.7;e;;0.0 +D;DG;WZ08-69-01;NOMINAL;2023;146.9;p;;0.0 D;DG;WZ08-69-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-69-01;REAL;2016;104.5;e;;0.0 D;DG;WZ08-69-01;REAL;2017;107.5;e;;0.0 D;DG;WZ08-69-01;REAL;2018;112.2;e;;0.0 D;DG;WZ08-69-01;REAL;2019;114.3;e;;0.0 D;DG;WZ08-69-01;REAL;2020;114.1;e;;0.0 -D;DG;WZ08-69-01;REAL;2021;119.5;p;;0.0 -D;DG;WZ08-69-01;REAL;2022;127.1;p;;0.0 +D;DG;WZ08-69-01;REAL;2021;119.5;e;;0.0 +D;DG;WZ08-69-01;REAL;2022;127.0;e;;0.0 +D;DG;WZ08-69-01;REAL;2023;128.2;p;;0.0 D;DG;WZ08-691;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-691;NOMINAL;2016;102.5;e;;0.0 D;DG;WZ08-691;NOMINAL;2017;105.6;e;;0.0 D;DG;WZ08-691;NOMINAL;2018;110.5;e;;0.0 D;DG;WZ08-691;NOMINAL;2019;115.5;e;;0.0 D;DG;WZ08-691;NOMINAL;2020;117.6;e;;0.0 -D;DG;WZ08-691;NOMINAL;2021;121.0;p;;0.0 -D;DG;WZ08-691;NOMINAL;2022;122.0;p;;0.0 +D;DG;WZ08-691;NOMINAL;2021;121.0;e;;0.0 +D;DG;WZ08-691;NOMINAL;2022;122.0;e;;0.0 +D;DG;WZ08-691;NOMINAL;2023;123.7;p;;0.0 D;DG;WZ08-691;REAL;2015;100.0;e;;0.0 D;DG;WZ08-691;REAL;2016;101.7;e;;0.0 D;DG;WZ08-691;REAL;2017;103.7;e;;0.0 D;DG;WZ08-691;REAL;2018;107.2;e;;0.0 D;DG;WZ08-691;REAL;2019;110.8;e;;0.0 D;DG;WZ08-691;REAL;2020;111.5;e;;0.0 -D;DG;WZ08-691;REAL;2021;109.2;p;;0.0 -D;DG;WZ08-691;REAL;2022;107.8;p;;0.0 +D;DG;WZ08-691;REAL;2021;109.2;e;;0.0 +D;DG;WZ08-691;REAL;2022;107.8;e;;0.0 +D;DG;WZ08-691;REAL;2023;106.0;p;;0.0 D;DG;WZ08-692;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-692;NOMINAL;2016;103.2;e;;0.0 D;DG;WZ08-692;NOMINAL;2017;106.5;e;;0.0 D;DG;WZ08-692;NOMINAL;2018;111.3;e;;0.0 D;DG;WZ08-692;NOMINAL;2019;117.1;e;;0.0 D;DG;WZ08-692;NOMINAL;2020;123.6;e;;0.0 -D;DG;WZ08-692;NOMINAL;2021;130.0;p;;0.0 -D;DG;WZ08-692;NOMINAL;2022;141.6;p;;0.0 +D;DG;WZ08-692;NOMINAL;2021;130.0;e;;0.0 +D;DG;WZ08-692;NOMINAL;2022;141.6;e;;0.0 +D;DG;WZ08-692;NOMINAL;2023;153.3;p;;0.0 D;DG;WZ08-692;REAL;2015;100.0;e;;0.0 D;DG;WZ08-692;REAL;2016;101.9;e;;0.0 D;DG;WZ08-692;REAL;2017;104.3;e;;0.0 D;DG;WZ08-692;REAL;2018;107.2;e;;0.0 D;DG;WZ08-692;REAL;2019;111.3;e;;0.0 D;DG;WZ08-692;REAL;2020;113.1;e;;0.0 -D;DG;WZ08-692;REAL;2021;116.5;p;;0.0 -D;DG;WZ08-692;REAL;2022;123.4;p;;0.0 +D;DG;WZ08-692;REAL;2021;116.5;e;;0.0 +D;DG;WZ08-692;REAL;2022;123.3;e;;0.0 +D;DG;WZ08-692;REAL;2023;128.2;p;;0.0 D;DG;WZ08-69;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-69;NOMINAL;2016;102.9;e;;0.0 D;DG;WZ08-69;NOMINAL;2017;106.1;e;;0.0 D;DG;WZ08-69;NOMINAL;2018;110.9;e;;0.0 D;DG;WZ08-69;NOMINAL;2019;116.4;e;;0.0 D;DG;WZ08-69;NOMINAL;2020;121.0;e;;0.0 -D;DG;WZ08-69;NOMINAL;2021;126.0;p;;0.0 -D;DG;WZ08-69;NOMINAL;2022;132.9;p;;0.0 +D;DG;WZ08-69;NOMINAL;2021;126.0;e;;0.0 +D;DG;WZ08-69;NOMINAL;2022;132.9;e;;0.0 +D;DG;WZ08-69;NOMINAL;2023;140.2;p;;0.0 D;DG;WZ08-69;REAL;2015;100.0;e;;0.0 D;DG;WZ08-69;REAL;2016;101.8;e;;0.0 D;DG;WZ08-69;REAL;2017;104.0;e;;0.0 D;DG;WZ08-69;REAL;2018;107.2;e;;0.0 D;DG;WZ08-69;REAL;2019;111.1;e;;0.0 D;DG;WZ08-69;REAL;2020;112.4;e;;0.0 -D;DG;WZ08-69;REAL;2021;113.2;p;;0.0 -D;DG;WZ08-69;REAL;2022;116.4;p;;0.0 +D;DG;WZ08-69;REAL;2021;113.2;e;;0.0 +D;DG;WZ08-69;REAL;2022;116.4;e;;0.0 +D;DG;WZ08-69;REAL;2023;118.3;p;;0.0 D;DG;WZ08-7021;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7021;NOMINAL;2016;112.6;e;;0.0 D;DG;WZ08-7021;NOMINAL;2017;105.6;e;;0.0 D;DG;WZ08-7021;NOMINAL;2018;110.4;e;;0.0 D;DG;WZ08-7021;NOMINAL;2019;114.1;e;;0.0 D;DG;WZ08-7021;NOMINAL;2020;110.8;e;;0.0 -D;DG;WZ08-7021;NOMINAL;2021;116.9;p;;0.0 -D;DG;WZ08-7021;NOMINAL;2022;130.4;p;;0.0 +D;DG;WZ08-7021;NOMINAL;2021;116.9;e;;0.0 +D;DG;WZ08-7021;NOMINAL;2022;130.7;e;;0.0 +D;DG;WZ08-7021;NOMINAL;2023;137.0;p;;0.0 D;DG;WZ08-7022;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7022;NOMINAL;2016;109.7;e;;0.0 D;DG;WZ08-7022;NOMINAL;2017;115.7;e;;0.0 D;DG;WZ08-7022;NOMINAL;2018;123.9;e;;0.0 D;DG;WZ08-7022;NOMINAL;2019;124.0;e;;0.0 D;DG;WZ08-7022;NOMINAL;2020;121.7;e;;0.0 -D;DG;WZ08-7022;NOMINAL;2021;136.5;p;;0.0 -D;DG;WZ08-7022;NOMINAL;2022;155.2;p;;0.0 +D;DG;WZ08-7022;NOMINAL;2021;136.5;e;;0.0 +D;DG;WZ08-7022;NOMINAL;2022;155.0;e;;0.0 +D;DG;WZ08-7022;NOMINAL;2023;159.4;p;;0.0 D;DG;WZ08-702;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-702;NOMINAL;2016;109.8;e;;0.0 D;DG;WZ08-702;NOMINAL;2017;115.2;e;;0.0 D;DG;WZ08-702;NOMINAL;2018;123.2;e;;0.0 D;DG;WZ08-702;NOMINAL;2019;123.6;e;;0.0 D;DG;WZ08-702;NOMINAL;2020;121.2;e;;0.0 -D;DG;WZ08-702;NOMINAL;2021;135.5;p;;0.0 -D;DG;WZ08-702;NOMINAL;2022;154.0;p;;0.0 +D;DG;WZ08-702;NOMINAL;2021;135.5;e;;0.0 +D;DG;WZ08-702;NOMINAL;2022;153.8;e;;0.0 +D;DG;WZ08-702;NOMINAL;2023;158.3;p;;0.0 D;DG;WZ08-702;REAL;2015;100.0;e;;0.0 D;DG;WZ08-702;REAL;2016;109.2;e;;0.0 D;DG;WZ08-702;REAL;2017;113.5;e;;0.0 D;DG;WZ08-702;REAL;2018;120.7;e;;0.0 D;DG;WZ08-702;REAL;2019;119.7;e;;0.0 D;DG;WZ08-702;REAL;2020;116.9;e;;0.0 -D;DG;WZ08-702;REAL;2021;130.0;p;;0.0 -D;DG;WZ08-702;REAL;2022;144.9;p;;0.0 +D;DG;WZ08-702;REAL;2021;130.0;e;;0.0 +D;DG;WZ08-702;REAL;2022;144.8;e;;0.0 +D;DG;WZ08-702;REAL;2023;144.9;p;;0.0 D;DG;WZ08-70;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-70;NOMINAL;2016;109.8;e;;0.0 D;DG;WZ08-70;NOMINAL;2017;115.2;e;;0.0 D;DG;WZ08-70;NOMINAL;2018;123.2;e;;0.0 D;DG;WZ08-70;NOMINAL;2019;123.6;e;;0.0 D;DG;WZ08-70;NOMINAL;2020;121.2;e;;0.0 -D;DG;WZ08-70;NOMINAL;2021;135.5;p;;0.0 -D;DG;WZ08-70;NOMINAL;2022;154.0;p;;0.0 +D;DG;WZ08-70;NOMINAL;2021;135.5;e;;0.0 +D;DG;WZ08-70;NOMINAL;2022;153.8;e;;0.0 +D;DG;WZ08-70;NOMINAL;2023;158.3;p;;0.0 D;DG;WZ08-70;REAL;2015;100.0;e;;0.0 D;DG;WZ08-70;REAL;2016;109.2;e;;0.0 D;DG;WZ08-70;REAL;2017;113.5;e;;0.0 D;DG;WZ08-70;REAL;2018;120.7;e;;0.0 D;DG;WZ08-70;REAL;2019;119.7;e;;0.0 D;DG;WZ08-70;REAL;2020;116.9;e;;0.0 -D;DG;WZ08-70;REAL;2021;130.0;p;;0.0 -D;DG;WZ08-70;REAL;2022;144.9;p;;0.0 +D;DG;WZ08-70;REAL;2021;130.0;e;;0.0 +D;DG;WZ08-70;REAL;2022;144.8;e;;0.0 +D;DG;WZ08-70;REAL;2023;144.9;p;;0.0 D;DG;WZ08-71-01;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-71-01;NOMINAL;2016;106.0;e;;0.0 D;DG;WZ08-71-01;NOMINAL;2017;113.9;e;;0.0 D;DG;WZ08-71-01;NOMINAL;2018;118.1;e;;0.0 D;DG;WZ08-71-01;NOMINAL;2019;122.1;e;;0.0 D;DG;WZ08-71-01;NOMINAL;2020;101.9;e;;0.0 -D;DG;WZ08-71-01;NOMINAL;2021;109.4;p;;0.0 -D;DG;WZ08-71-01;NOMINAL;2022;130.1;p;;0.0 +D;DG;WZ08-71-01;NOMINAL;2021;109.4;e;;0.0 +D;DG;WZ08-71-01;NOMINAL;2022;130.2;e;;0.0 +D;DG;WZ08-71-01;NOMINAL;2023;136.3;p;;0.0 D;DG;WZ08-71-01;REAL;2015;100.0;e;;0.0 D;DG;WZ08-71-01;REAL;2016;104.6;e;;0.0 D;DG;WZ08-71-01;REAL;2017;110.7;e;;0.0 D;DG;WZ08-71-01;REAL;2018;112.5;e;;0.0 D;DG;WZ08-71-01;REAL;2019;114.3;e;;0.0 D;DG;WZ08-71-01;REAL;2020;94.6;e;;0.0 -D;DG;WZ08-71-01;REAL;2021;98.4;p;;0.0 -D;DG;WZ08-71-01;REAL;2022;111.8;p;;0.0 +D;DG;WZ08-71-01;REAL;2021;98.4;e;;0.0 +D;DG;WZ08-71-01;REAL;2022;112.1;e;;0.0 +D;DG;WZ08-71-01;REAL;2023;112.5;p;;0.0 D;DG;WZ08-7111;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7111;NOMINAL;2016;106.7;e;;0.0 D;DG;WZ08-7111;NOMINAL;2017;118.6;e;;0.0 D;DG;WZ08-7111;NOMINAL;2018;124.9;e;;0.0 D;DG;WZ08-7111;NOMINAL;2019;132.9;e;;0.0 D;DG;WZ08-7111;NOMINAL;2020;133.2;e;;0.0 -D;DG;WZ08-7111;NOMINAL;2021;135.6;p;;0.0 -D;DG;WZ08-7111;NOMINAL;2022;146.3;p;;0.0 +D;DG;WZ08-7111;NOMINAL;2021;135.6;e;;0.0 +D;DG;WZ08-7111;NOMINAL;2022;146.3;e;;0.0 +D;DG;WZ08-7111;NOMINAL;2023;149.9;p;;0.0 D;DG;WZ08-7112;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7112;NOMINAL;2016;99.9;e;;0.0 D;DG;WZ08-7112;NOMINAL;2017;102.7;e;;0.0 D;DG;WZ08-7112;NOMINAL;2018;101.3;e;;0.0 D;DG;WZ08-7112;NOMINAL;2019;107.9;e;;0.0 D;DG;WZ08-7112;NOMINAL;2020;108.8;e;;0.0 -D;DG;WZ08-7112;NOMINAL;2021;110.8;p;;0.0 -D;DG;WZ08-7112;NOMINAL;2022;126.3;p;;0.0 +D;DG;WZ08-7112;NOMINAL;2021;110.8;e;;0.0 +D;DG;WZ08-7112;NOMINAL;2022;126.3;e;;0.0 +D;DG;WZ08-7112;NOMINAL;2023;132.7;p;;0.0 D;DG;WZ08-711;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-711;NOMINAL;2016;101.0;e;;0.0 D;DG;WZ08-711;NOMINAL;2017;105.2;e;;0.0 D;DG;WZ08-711;NOMINAL;2018;104.9;e;;0.0 D;DG;WZ08-711;NOMINAL;2019;111.7;e;;0.0 D;DG;WZ08-711;NOMINAL;2020;112.5;e;;0.0 -D;DG;WZ08-711;NOMINAL;2021;114.7;p;;0.0 -D;DG;WZ08-711;NOMINAL;2022;129.4;p;;0.0 +D;DG;WZ08-711;NOMINAL;2021;114.7;e;;0.0 +D;DG;WZ08-711;NOMINAL;2022;129.4;e;;0.0 +D;DG;WZ08-711;NOMINAL;2023;135.3;p;;0.0 D;DG;WZ08-711;REAL;2015;100.0;e;;0.0 D;DG;WZ08-711;REAL;2016;99.8;e;;0.0 D;DG;WZ08-711;REAL;2017;102.4;e;;0.0 D;DG;WZ08-711;REAL;2018;100.4;e;;0.0 D;DG;WZ08-711;REAL;2019;104.8;e;;0.0 D;DG;WZ08-711;REAL;2020;104.3;e;;0.0 -D;DG;WZ08-711;REAL;2021;103.5;p;;0.0 -D;DG;WZ08-711;REAL;2022;110.1;p;;0.0 +D;DG;WZ08-711;REAL;2021;103.6;e;;0.0 +D;DG;WZ08-711;REAL;2022;110.3;e;;0.0 +D;DG;WZ08-711;REAL;2023;109.8;p;;0.0 D;DG;WZ08-712;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-712;NOMINAL;2016;106.1;e;;0.0 D;DG;WZ08-712;NOMINAL;2017;107.2;e;;0.0 D;DG;WZ08-712;NOMINAL;2018;105.8;e;;0.0 D;DG;WZ08-712;NOMINAL;2019;109.7;e;;0.0 D;DG;WZ08-712;NOMINAL;2020;112.1;e;;0.0 -D;DG;WZ08-712;NOMINAL;2021;116.7;p;;0.0 -D;DG;WZ08-712;NOMINAL;2022;122.5;p;;0.0 +D;DG;WZ08-712;NOMINAL;2021;116.7;e;;0.0 +D;DG;WZ08-712;NOMINAL;2022;122.5;e;;0.0 +D;DG;WZ08-712;NOMINAL;2023;132.5;p;;0.0 D;DG;WZ08-712;REAL;2015;100.0;e;;0.0 D;DG;WZ08-712;REAL;2016;105.2;e;;0.0 D;DG;WZ08-712;REAL;2017;106.7;e;;0.0 D;DG;WZ08-712;REAL;2018;102.8;e;;0.0 D;DG;WZ08-712;REAL;2019;104.5;e;;0.0 D;DG;WZ08-712;REAL;2020;103.8;e;;0.0 -D;DG;WZ08-712;REAL;2021;106.0;p;;0.0 -D;DG;WZ08-712;REAL;2022;106.5;p;;0.0 +D;DG;WZ08-712;REAL;2021;106.0;e;;0.0 +D;DG;WZ08-712;REAL;2022;106.6;e;;0.0 +D;DG;WZ08-712;REAL;2023;109.7;p;;0.0 D;DG;WZ08-71;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-71;NOMINAL;2016;101.7;e;;0.0 D;DG;WZ08-71;NOMINAL;2017;105.4;e;;0.0 D;DG;WZ08-71;NOMINAL;2018;105.0;e;;0.0 D;DG;WZ08-71;NOMINAL;2019;111.5;e;;0.0 D;DG;WZ08-71;NOMINAL;2020;112.5;e;;0.0 -D;DG;WZ08-71;NOMINAL;2021;114.9;p;;0.0 -D;DG;WZ08-71;NOMINAL;2022;128.4;p;;0.0 +D;DG;WZ08-71;NOMINAL;2021;114.9;e;;0.0 +D;DG;WZ08-71;NOMINAL;2022;128.5;e;;0.0 +D;DG;WZ08-71;NOMINAL;2023;134.9;p;;0.0 D;DG;WZ08-71;REAL;2015;100.0;e;;0.0 D;DG;WZ08-71;REAL;2016;100.6;e;;0.0 D;DG;WZ08-71;REAL;2017;102.9;e;;0.0 D;DG;WZ08-71;REAL;2018;100.7;e;;0.0 D;DG;WZ08-71;REAL;2019;104.8;e;;0.0 D;DG;WZ08-71;REAL;2020;104.3;e;;0.0 -D;DG;WZ08-71;REAL;2021;103.9;p;;0.0 -D;DG;WZ08-71;REAL;2022;109.6;p;;0.0 +D;DG;WZ08-71;REAL;2021;103.9;e;;0.0 +D;DG;WZ08-71;REAL;2022;109.8;e;;0.0 +D;DG;WZ08-71;REAL;2023;109.8;p;;0.0 D;DG;WZ08-7311;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7311;NOMINAL;2016;102.6;e;;0.0 D;DG;WZ08-7311;NOMINAL;2017;98.8;e;;0.0 D;DG;WZ08-7311;NOMINAL;2018;102.0;e;;0.0 D;DG;WZ08-7311;NOMINAL;2019;104.2;e;;0.0 D;DG;WZ08-7311;NOMINAL;2020;90.8;e;;0.0 -D;DG;WZ08-7311;NOMINAL;2021;99.9;p;;0.0 -D;DG;WZ08-7311;NOMINAL;2022;111.5;p;;0.0 +D;DG;WZ08-7311;NOMINAL;2021;99.9;e;;0.0 +D;DG;WZ08-7311;NOMINAL;2022;111.2;e;;0.0 +D;DG;WZ08-7311;NOMINAL;2023;116.1;p;;0.0 D;DG;WZ08-7312;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7312;NOMINAL;2016;114.0;e;;0.0 D;DG;WZ08-7312;NOMINAL;2017;112.7;e;;0.0 D;DG;WZ08-7312;NOMINAL;2018;118.6;e;;0.0 D;DG;WZ08-7312;NOMINAL;2019;122.8;e;;0.0 D;DG;WZ08-7312;NOMINAL;2020;114.1;e;;0.0 -D;DG;WZ08-7312;NOMINAL;2021;139.3;p;;0.0 -D;DG;WZ08-7312;NOMINAL;2022;146.8;p;;0.0 +D;DG;WZ08-7312;NOMINAL;2021;139.3;e;;0.0 +D;DG;WZ08-7312;NOMINAL;2022;146.8;e;;0.0 +D;DG;WZ08-7312;NOMINAL;2023;162.7;p;;0.0 D;DG;WZ08-731;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-731;NOMINAL;2016;106.6;e;;0.0 D;DG;WZ08-731;NOMINAL;2017;103.8;e;;0.0 D;DG;WZ08-731;NOMINAL;2018;107.9;e;;0.0 D;DG;WZ08-731;NOMINAL;2019;110.8;e;;0.0 D;DG;WZ08-731;NOMINAL;2020;99.0;e;;0.0 -D;DG;WZ08-731;NOMINAL;2021;113.9;p;;0.0 -D;DG;WZ08-731;NOMINAL;2022;124.0;p;;0.0 +D;DG;WZ08-731;NOMINAL;2021;113.9;e;;0.0 +D;DG;WZ08-731;NOMINAL;2022;123.8;e;;0.0 +D;DG;WZ08-731;NOMINAL;2023;132.6;p;;0.0 D;DG;WZ08-731;REAL;2015;100.0;e;;0.0 D;DG;WZ08-731;REAL;2016;104.1;e;;0.0 D;DG;WZ08-731;REAL;2017;99.4;e;;0.0 D;DG;WZ08-731;REAL;2018;100.7;e;;0.0 D;DG;WZ08-731;REAL;2019;102.3;e;;0.0 D;DG;WZ08-731;REAL;2020;91.0;e;;0.0 -D;DG;WZ08-731;REAL;2021;101.2;p;;0.0 -D;DG;WZ08-731;REAL;2022;107.1;p;;0.0 +D;DG;WZ08-731;REAL;2021;101.1;e;;0.0 +D;DG;WZ08-731;REAL;2022;107.0;e;;0.0 +D;DG;WZ08-731;REAL;2023;110.8;p;;0.0 D;DG;WZ08-732;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-732;NOMINAL;2016;103.1;e;;0.0 D;DG;WZ08-732;NOMINAL;2017;109.0;e;;0.0 D;DG;WZ08-732;NOMINAL;2018;109.2;e;;0.0 D;DG;WZ08-732;NOMINAL;2019;106.1;e;;0.0 D;DG;WZ08-732;NOMINAL;2020;96.4;e;;0.0 -D;DG;WZ08-732;NOMINAL;2021;110.4;p;;0.0 -D;DG;WZ08-732;NOMINAL;2022;120.3;p;;0.0 +D;DG;WZ08-732;NOMINAL;2021;110.4;e;;0.0 +D;DG;WZ08-732;NOMINAL;2022;120.6;e;;0.0 +D;DG;WZ08-732;NOMINAL;2023;124.1;p;;0.0 D;DG;WZ08-732;REAL;2015;100.0;e;;0.0 D;DG;WZ08-732;REAL;2016;102.5;e;;0.0 D;DG;WZ08-732;REAL;2017;108.1;e;;0.0 D;DG;WZ08-732;REAL;2018;108.2;e;;0.0 D;DG;WZ08-732;REAL;2019;104.6;e;;0.0 D;DG;WZ08-732;REAL;2020;94.7;e;;0.0 -D;DG;WZ08-732;REAL;2021;107.7;p;;0.0 -D;DG;WZ08-732;REAL;2022;114.7;p;;0.0 +D;DG;WZ08-732;REAL;2021;107.7;e;;0.0 +D;DG;WZ08-732;REAL;2022;114.9;e;;0.0 +D;DG;WZ08-732;REAL;2023;114.2;p;;0.0 D;DG;WZ08-73;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-73;NOMINAL;2016;106.3;e;;0.0 D;DG;WZ08-73;NOMINAL;2017;104.2;e;;0.0 D;DG;WZ08-73;NOMINAL;2018;108.0;e;;0.0 D;DG;WZ08-73;NOMINAL;2019;110.4;e;;0.0 D;DG;WZ08-73;NOMINAL;2020;98.8;e;;0.0 -D;DG;WZ08-73;NOMINAL;2021;113.6;p;;0.0 -D;DG;WZ08-73;NOMINAL;2022;123.7;p;;0.0 +D;DG;WZ08-73;NOMINAL;2021;113.6;e;;0.0 +D;DG;WZ08-73;NOMINAL;2022;123.5;e;;0.0 +D;DG;WZ08-73;NOMINAL;2023;131.9;p;;0.0 D;DG;WZ08-73;REAL;2015;100.0;e;;0.0 D;DG;WZ08-73;REAL;2016;103.9;e;;0.0 D;DG;WZ08-73;REAL;2017;100.1;e;;0.0 D;DG;WZ08-73;REAL;2018;101.3;e;;0.0 D;DG;WZ08-73;REAL;2019;102.5;e;;0.0 D;DG;WZ08-73;REAL;2020;91.3;e;;0.0 -D;DG;WZ08-73;REAL;2021;101.7;p;;0.0 -D;DG;WZ08-73;REAL;2022;107.7;p;;0.0 +D;DG;WZ08-73;REAL;2021;101.7;e;;0.0 +D;DG;WZ08-73;REAL;2022;107.7;e;;0.0 +D;DG;WZ08-73;REAL;2023;111.1;p;;0.0 D;DG;WZ08-741;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-741;NOMINAL;2016;104.5;e;;0.0 D;DG;WZ08-741;NOMINAL;2017;111.2;e;;0.0 D;DG;WZ08-741;NOMINAL;2018;118.3;e;;0.0 D;DG;WZ08-741;NOMINAL;2019;126.1;e;;0.0 D;DG;WZ08-741;NOMINAL;2020;113.5;e;;0.0 -D;DG;WZ08-741;NOMINAL;2021;127.8;p;;0.0 -D;DG;WZ08-741;NOMINAL;2022;141.9;p;;0.0 +D;DG;WZ08-741;NOMINAL;2021;127.8;e;;0.0 +D;DG;WZ08-741;NOMINAL;2022;142.2;e;;0.0 +D;DG;WZ08-741;NOMINAL;2023;148.1;p;;0.0 D;DG;WZ08-741;REAL;2015;100.0;e;;0.0 D;DG;WZ08-741;REAL;2016;104.5;e;;0.0 D;DG;WZ08-741;REAL;2017;111.0;e;;0.0 D;DG;WZ08-741;REAL;2018;114.6;e;;0.0 D;DG;WZ08-741;REAL;2019;121.4;e;;0.0 D;DG;WZ08-741;REAL;2020;108.3;e;;0.0 -D;DG;WZ08-741;REAL;2021;117.2;p;;0.0 -D;DG;WZ08-741;REAL;2022;128.6;p;;0.0 +D;DG;WZ08-741;REAL;2021;117.2;e;;0.0 +D;DG;WZ08-741;REAL;2022;128.8;e;;0.0 +D;DG;WZ08-741;REAL;2023;131.7;p;;0.0 D;DG;WZ08-742;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-742;NOMINAL;2016;101.2;e;;0.0 D;DG;WZ08-742;NOMINAL;2017;105.6;e;;0.0 D;DG;WZ08-742;NOMINAL;2018;105.4;e;;0.0 D;DG;WZ08-742;NOMINAL;2019;109.4;e;;0.0 D;DG;WZ08-742;NOMINAL;2020;97.7;e;;0.0 -D;DG;WZ08-742;NOMINAL;2021;102.4;p;;0.0 -D;DG;WZ08-742;NOMINAL;2022;104.8;p;;0.0 +D;DG;WZ08-742;NOMINAL;2021;102.4;e;;0.0 +D;DG;WZ08-742;NOMINAL;2022;104.8;e;;0.0 +D;DG;WZ08-742;NOMINAL;2023;101.2;p;;0.0 D;DG;WZ08-742;REAL;2015;100.0;e;;0.0 D;DG;WZ08-742;REAL;2016;101.3;e;;0.0 D;DG;WZ08-742;REAL;2017;105.2;e;;0.0 D;DG;WZ08-742;REAL;2018;102.1;e;;0.0 D;DG;WZ08-742;REAL;2019;105.3;e;;0.0 D;DG;WZ08-742;REAL;2020;93.0;e;;0.0 -D;DG;WZ08-742;REAL;2021;93.8;p;;0.0 -D;DG;WZ08-742;REAL;2022;94.9;p;;0.0 +D;DG;WZ08-742;REAL;2021;93.8;e;;0.0 +D;DG;WZ08-742;REAL;2022;94.9;e;;0.0 +D;DG;WZ08-742;REAL;2023;90.0;p;;0.0 D;DG;WZ08-743;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-743;NOMINAL;2016;110.5;e;;0.0 D;DG;WZ08-743;NOMINAL;2017;117.3;e;;0.0 D;DG;WZ08-743;NOMINAL;2018;117.7;e;;0.0 D;DG;WZ08-743;NOMINAL;2019;109.4;e;;0.0 D;DG;WZ08-743;NOMINAL;2020;99.9;e;;0.0 -D;DG;WZ08-743;NOMINAL;2021;106.4;p;;0.0 -D;DG;WZ08-743;NOMINAL;2022;110.0;p;;0.0 +D;DG;WZ08-743;NOMINAL;2021;106.4;e;;0.0 +D;DG;WZ08-743;NOMINAL;2022;110.0;e;;0.0 +D;DG;WZ08-743;NOMINAL;2023;111.4;p;;0.0 D;DG;WZ08-743;REAL;2015;100.0;e;;0.0 D;DG;WZ08-743;REAL;2016;109.1;e;;0.0 D;DG;WZ08-743;REAL;2017;114.1;e;;0.0 D;DG;WZ08-743;REAL;2018;112.7;e;;0.0 D;DG;WZ08-743;REAL;2019;103.3;e;;0.0 D;DG;WZ08-743;REAL;2020;93.8;e;;0.0 -D;DG;WZ08-743;REAL;2021;94.2;p;;0.0 -D;DG;WZ08-743;REAL;2022;94.9;p;;0.0 +D;DG;WZ08-743;REAL;2021;94.2;e;;0.0 +D;DG;WZ08-743;REAL;2022;94.9;e;;0.0 +D;DG;WZ08-743;REAL;2023;92.4;p;;0.0 D;DG;WZ08-749;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-749;NOMINAL;2016;105.4;e;;0.0 D;DG;WZ08-749;NOMINAL;2017;99.4;e;;0.0 D;DG;WZ08-749;NOMINAL;2018;98.8;e;;0.0 D;DG;WZ08-749;NOMINAL;2019;99.9;e;;0.0 D;DG;WZ08-749;NOMINAL;2020;105.6;e;;0.0 -D;DG;WZ08-749;NOMINAL;2021;122.8;p;;0.0 -D;DG;WZ08-749;NOMINAL;2022;142.4;p;;0.0 +D;DG;WZ08-749;NOMINAL;2021;122.8;e;;0.0 +D;DG;WZ08-749;NOMINAL;2022;142.6;e;;0.0 +D;DG;WZ08-749;NOMINAL;2023;153.7;p;;0.0 D;DG;WZ08-749;REAL;2015;100.0;e;;0.0 D;DG;WZ08-749;REAL;2016;104.6;e;;0.0 D;DG;WZ08-749;REAL;2017;98.0;e;;0.0 D;DG;WZ08-749;REAL;2018;96.3;e;;0.0 D;DG;WZ08-749;REAL;2019;96.4;e;;0.0 D;DG;WZ08-749;REAL;2020;102.6;e;;0.0 -D;DG;WZ08-749;REAL;2021;107.9;p;;0.0 -D;DG;WZ08-749;REAL;2022;123.3;p;;0.0 +D;DG;WZ08-749;REAL;2021;107.9;e;;0.0 +D;DG;WZ08-749;REAL;2022;123.4;e;;0.0 +D;DG;WZ08-749;REAL;2023;130.1;p;;0.0 D;DG;WZ08-74;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-74;NOMINAL;2016;105.1;e;;0.0 D;DG;WZ08-74;NOMINAL;2017;102.8;e;;0.0 D;DG;WZ08-74;NOMINAL;2018;103.4;e;;0.0 D;DG;WZ08-74;NOMINAL;2019;105.4;e;;0.0 D;DG;WZ08-74;NOMINAL;2020;105.9;e;;0.0 -D;DG;WZ08-74;NOMINAL;2021;121.0;p;;0.0 -D;DG;WZ08-74;NOMINAL;2022;137.4;p;;0.0 +D;DG;WZ08-74;NOMINAL;2021;121.0;e;;0.0 +D;DG;WZ08-74;NOMINAL;2022;137.5;e;;0.0 +D;DG;WZ08-74;NOMINAL;2023;146.0;p;;0.0 D;DG;WZ08-74;REAL;2015;100.0;e;;0.0 D;DG;WZ08-74;REAL;2016;104.5;e;;0.0 D;DG;WZ08-74;REAL;2017;101.5;e;;0.0 D;DG;WZ08-74;REAL;2018;100.6;e;;0.0 D;DG;WZ08-74;REAL;2019;101.6;e;;0.0 D;DG;WZ08-74;REAL;2020;102.2;e;;0.0 -D;DG;WZ08-74;REAL;2021;107.5;p;;0.0 -D;DG;WZ08-74;REAL;2022;120.2;p;;0.0 +D;DG;WZ08-74;REAL;2021;107.5;e;;0.0 +D;DG;WZ08-74;REAL;2022;120.4;e;;0.0 +D;DG;WZ08-74;REAL;2023;124.9;p;;0.0 D;DG;WZ08-7711;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7711;NOMINAL;2016;114.8;e;;0.0 D;DG;WZ08-7711;NOMINAL;2017;111.2;e;;0.0 D;DG;WZ08-7711;NOMINAL;2018;120.3;e;;0.0 D;DG;WZ08-7711;NOMINAL;2019;139.9;e;;0.0 D;DG;WZ08-7711;NOMINAL;2020;133.4;e;;0.0 -D;DG;WZ08-7711;NOMINAL;2021;204.6;p;;0.0 -D;DG;WZ08-7711;NOMINAL;2022;223.6;p;;0.0 +D;DG;WZ08-7711;NOMINAL;2021;204.6;e;;0.0 +D;DG;WZ08-7711;NOMINAL;2022;222.2;e;;0.0 +D;DG;WZ08-7711;NOMINAL;2023;235.0;p;;0.0 D;DG;WZ08-7712;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7712;NOMINAL;2016;99.1;e;;0.0 D;DG;WZ08-7712;NOMINAL;2017;103.1;e;;0.0 D;DG;WZ08-7712;NOMINAL;2018;108.3;e;;0.0 D;DG;WZ08-7712;NOMINAL;2019;125.8;e;;0.0 D;DG;WZ08-7712;NOMINAL;2020;121.2;e;;0.0 -D;DG;WZ08-7712;NOMINAL;2021;141.8;p;;0.0 -D;DG;WZ08-7712;NOMINAL;2022;155.9;p;;0.0 +D;DG;WZ08-7712;NOMINAL;2021;141.8;e;;0.0 +D;DG;WZ08-7712;NOMINAL;2022;156.6;e;;0.0 +D;DG;WZ08-7712;NOMINAL;2023;167.6;p;;0.0 D;DG;WZ08-771;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-771;NOMINAL;2016;112.6;e;;0.0 D;DG;WZ08-771;NOMINAL;2017;110.0;e;;0.0 D;DG;WZ08-771;NOMINAL;2018;118.6;e;;0.0 D;DG;WZ08-771;NOMINAL;2019;137.9;e;;0.0 D;DG;WZ08-771;NOMINAL;2020;131.7;e;;0.0 -D;DG;WZ08-771;NOMINAL;2021;195.8;p;;0.0 -D;DG;WZ08-771;NOMINAL;2022;214.1;p;;0.0 +D;DG;WZ08-771;NOMINAL;2021;195.8;e;;0.0 +D;DG;WZ08-771;NOMINAL;2022;213.0;e;;0.0 +D;DG;WZ08-771;NOMINAL;2023;225.6;p;;0.0 D;DG;WZ08-771;REAL;2015;100.0;e;;0.0 D;DG;WZ08-771;REAL;2016;111.0;e;;0.0 D;DG;WZ08-771;REAL;2017;106.9;e;;0.0 D;DG;WZ08-771;REAL;2018;113.2;e;;0.0 D;DG;WZ08-771;REAL;2019;128.9;e;;0.0 D;DG;WZ08-771;REAL;2020;122.1;e;;0.0 -D;DG;WZ08-771;REAL;2021;174.1;p;;0.0 -D;DG;WZ08-771;REAL;2022;174.8;p;;0.0 +D;DG;WZ08-771;REAL;2021;174.1;e;;0.0 +D;DG;WZ08-771;REAL;2022;173.9;e;;0.0 +D;DG;WZ08-771;REAL;2023;170.8;p;;0.0 D;DG;WZ08-7721;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7721;NOMINAL;2016;84.2;e;;0.0 D;DG;WZ08-7721;NOMINAL;2017;129.1;e;;0.0 D;DG;WZ08-7721;NOMINAL;2018;175.7;e;;0.0 D;DG;WZ08-7721;NOMINAL;2019;276.9;e;;0.0 D;DG;WZ08-7721;NOMINAL;2020;267.2;e;;0.0 -D;DG;WZ08-7721;NOMINAL;2021;415.2;p;;0.0 -D;DG;WZ08-7721;NOMINAL;2022;529.7;p;;0.0 +D;DG;WZ08-7721;NOMINAL;2021;415.2;e;;0.0 +D;DG;WZ08-7721;NOMINAL;2022;529.7;e;;0.0 +D;DG;WZ08-7721;NOMINAL;2023;557.0;p;;0.0 D;DG;WZ08-7722;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7722;NOMINAL;2016;116.8;e;;0.0 D;DG;WZ08-7722;NOMINAL;2017;228.0;e;;0.0 D;DG;WZ08-7722;NOMINAL;2018;58.0;e;;0.0 D;DG;WZ08-7722;NOMINAL;2019;51.9;e;;0.0 D;DG;WZ08-7722;NOMINAL;2020;27.1;e;;0.0 -D;DG;WZ08-7722;NOMINAL;2021;18.4;p;;0.0 -D;DG;WZ08-7722;NOMINAL;2022;18.1;p;;0.0 +D;DG;WZ08-7722;NOMINAL;2021;18.4;e;;0.0 +D;DG;WZ08-7722;NOMINAL;2022;18.1;e;;0.0 +D;DG;WZ08-7722;NOMINAL;2023;20.2;p;;0.0 D;DG;WZ08-7729;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7729;NOMINAL;2016;112.1;e;;0.0 D;DG;WZ08-7729;NOMINAL;2017;115.9;e;;0.0 D;DG;WZ08-7729;NOMINAL;2018;123.3;e;;0.0 D;DG;WZ08-7729;NOMINAL;2019;134.3;e;;0.0 D;DG;WZ08-7729;NOMINAL;2020;149.0;e;;0.0 -D;DG;WZ08-7729;NOMINAL;2021;188.2;p;;0.0 -D;DG;WZ08-7729;NOMINAL;2022;226.6;p;;0.0 +D;DG;WZ08-7729;NOMINAL;2021;188.2;e;;0.0 +D;DG;WZ08-7729;NOMINAL;2022;226.6;e;;0.0 +D;DG;WZ08-7729;NOMINAL;2023;232.4;p;;0.0 D;DG;WZ08-772;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-772;NOMINAL;2016;111.3;e;;0.0 D;DG;WZ08-772;NOMINAL;2017;127.4;e;;0.0 D;DG;WZ08-772;NOMINAL;2018;119.4;e;;0.0 D;DG;WZ08-772;NOMINAL;2019;132.9;e;;0.0 D;DG;WZ08-772;NOMINAL;2020;142.6;e;;0.0 -D;DG;WZ08-772;NOMINAL;2021;182.2;p;;0.0 -D;DG;WZ08-772;NOMINAL;2022;220.4;p;;0.0 +D;DG;WZ08-772;NOMINAL;2021;182.2;e;;0.0 +D;DG;WZ08-772;NOMINAL;2022;220.4;e;;0.0 +D;DG;WZ08-772;NOMINAL;2023;226.8;p;;0.0 D;DG;WZ08-772;REAL;2015;100.0;e;;0.0 D;DG;WZ08-772;REAL;2016;109.8;e;;0.0 D;DG;WZ08-772;REAL;2017;124.7;e;;0.0 D;DG;WZ08-772;REAL;2018;115.0;e;;0.0 D;DG;WZ08-772;REAL;2019;127.0;e;;0.0 D;DG;WZ08-772;REAL;2020;134.8;e;;0.0 -D;DG;WZ08-772;REAL;2021;167.1;p;;0.0 -D;DG;WZ08-772;REAL;2022;193.0;p;;0.0 +D;DG;WZ08-772;REAL;2021;167.1;e;;0.0 +D;DG;WZ08-772;REAL;2022;193.0;e;;0.0 +D;DG;WZ08-772;REAL;2023;196.3;p;;0.0 D;DG;WZ08-7731;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7731;NOMINAL;2016;59.7;e;;0.0 D;DG;WZ08-7731;NOMINAL;2017;61.6;e;;0.0 D;DG;WZ08-7731;NOMINAL;2018;59.1;e;;0.0 D;DG;WZ08-7731;NOMINAL;2019;57.5;e;;0.0 D;DG;WZ08-7731;NOMINAL;2020;72.6;e;;0.0 -D;DG;WZ08-7731;NOMINAL;2021;103.7;p;;0.0 -D;DG;WZ08-7731;NOMINAL;2022;106.7;p;;0.0 +D;DG;WZ08-7731;NOMINAL;2021;103.7;e;;0.0 +D;DG;WZ08-7731;NOMINAL;2022;106.7;e;;0.0 +D;DG;WZ08-7731;NOMINAL;2023;87.4;p;;0.0 D;DG;WZ08-7732;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7732;NOMINAL;2016;102.4;e;;0.0 D;DG;WZ08-7732;NOMINAL;2017;112.3;e;;0.0 D;DG;WZ08-7732;NOMINAL;2018;120.2;e;;0.0 D;DG;WZ08-7732;NOMINAL;2019;152.4;e;;0.0 D;DG;WZ08-7732;NOMINAL;2020;160.9;e;;0.0 -D;DG;WZ08-7732;NOMINAL;2021;180.1;p;;0.0 -D;DG;WZ08-7732;NOMINAL;2022;193.7;p;;0.0 +D;DG;WZ08-7732;NOMINAL;2021;180.1;e;;0.0 +D;DG;WZ08-7732;NOMINAL;2022;193.7;e;;0.0 +D;DG;WZ08-7732;NOMINAL;2023;203.0;p;;0.0 D;DG;WZ08-7733;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7733;NOMINAL;2016;97.2;e;;0.0 D;DG;WZ08-7733;NOMINAL;2017;102.0;e;;0.0 D;DG;WZ08-7733;NOMINAL;2018;112.8;e;;0.0 D;DG;WZ08-7733;NOMINAL;2019;142.9;e;;0.0 D;DG;WZ08-7733;NOMINAL;2020;128.2;e;;0.0 -D;DG;WZ08-7733;NOMINAL;2021;121.7;p;;0.0 -D;DG;WZ08-7733;NOMINAL;2022;134.2;p;;0.0 +D;DG;WZ08-7733;NOMINAL;2021;121.7;e;;0.0 +D;DG;WZ08-7733;NOMINAL;2022;134.2;e;;0.0 +D;DG;WZ08-7733;NOMINAL;2023;136.9;p;;0.0 D;DG;WZ08-7734;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7734;NOMINAL;2016;47.3;e;;0.0 D;DG;WZ08-7734;NOMINAL;2017;55.1;e;;0.0 D;DG;WZ08-7734;NOMINAL;2018;50.3;e;;0.0 D;DG;WZ08-7734;NOMINAL;2019;48.6;e;;0.0 D;DG;WZ08-7734;NOMINAL;2020;87.2;e;;0.0 -D;DG;WZ08-7734;NOMINAL;2021;63.3;p;;0.0 -D;DG;WZ08-7734;NOMINAL;2022;64.5;p;;0.0 +D;DG;WZ08-7734;NOMINAL;2021;63.3;e;;0.0 +D;DG;WZ08-7734;NOMINAL;2022;64.5;e;;0.0 +D;DG;WZ08-7734;NOMINAL;2023;65.1;p;;0.0 D;DG;WZ08-7735;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7735;NOMINAL;2016;66.5;e;;0.0 D;DG;WZ08-7735;NOMINAL;2017;84.9;e;;0.0 D;DG;WZ08-7735;NOMINAL;2018;200.4;e;;0.0 D;DG;WZ08-7735;NOMINAL;2019;129.9;e;;0.0 D;DG;WZ08-7735;NOMINAL;2020;45.5;e;;0.0 -D;DG;WZ08-7735;NOMINAL;2021;80.6;p;;0.0 -D;DG;WZ08-7735;NOMINAL;2022;53.5;p;;0.0 +D;DG;WZ08-7735;NOMINAL;2021;80.6;e;;0.0 +D;DG;WZ08-7735;NOMINAL;2022;53.5;e;;0.0 +D;DG;WZ08-7735;NOMINAL;2023;38.2;p;;0.0 D;DG;WZ08-7739;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7739;NOMINAL;2016;108.8;e;;0.0 D;DG;WZ08-7739;NOMINAL;2017;115.0;e;;0.0 D;DG;WZ08-7739;NOMINAL;2018;114.4;e;;0.0 D;DG;WZ08-7739;NOMINAL;2019;128.6;e;;0.0 D;DG;WZ08-7739;NOMINAL;2020;132.2;e;;0.0 -D;DG;WZ08-7739;NOMINAL;2021;203.3;p;;0.0 -D;DG;WZ08-7739;NOMINAL;2022;225.4;p;;0.0 +D;DG;WZ08-7739;NOMINAL;2021;203.3;e;;0.0 +D;DG;WZ08-7739;NOMINAL;2022;225.4;e;;0.0 +D;DG;WZ08-7739;NOMINAL;2023;234.1;p;;0.0 D;DG;WZ08-773;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-773;NOMINAL;2016;99.6;e;;0.0 D;DG;WZ08-773;NOMINAL;2017;106.9;e;;0.0 D;DG;WZ08-773;NOMINAL;2018;114.8;e;;0.0 D;DG;WZ08-773;NOMINAL;2019;130.7;e;;0.0 D;DG;WZ08-773;NOMINAL;2020;130.5;e;;0.0 -D;DG;WZ08-773;NOMINAL;2021;171.6;p;;0.0 -D;DG;WZ08-773;NOMINAL;2022;186.6;p;;0.0 +D;DG;WZ08-773;NOMINAL;2021;171.6;e;;0.0 +D;DG;WZ08-773;NOMINAL;2022;186.6;e;;0.0 +D;DG;WZ08-773;NOMINAL;2023;192.1;p;;0.0 D;DG;WZ08-773;REAL;2015;100.0;e;;0.0 D;DG;WZ08-773;REAL;2016;99.8;e;;0.0 D;DG;WZ08-773;REAL;2017;106.6;e;;0.0 D;DG;WZ08-773;REAL;2018;113.9;e;;0.0 D;DG;WZ08-773;REAL;2019;129.8;e;;0.0 D;DG;WZ08-773;REAL;2020;130.7;e;;0.0 -D;DG;WZ08-773;REAL;2021;168.8;p;;0.0 -D;DG;WZ08-773;REAL;2022;175.9;p;;0.0 +D;DG;WZ08-773;REAL;2021;168.8;e;;0.0 +D;DG;WZ08-773;REAL;2022;175.9;e;;0.0 +D;DG;WZ08-773;REAL;2023;174.2;p;;0.0 D;DG;WZ08-774;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-774;NOMINAL;2016;107.1;e;;0.0 D;DG;WZ08-774;NOMINAL;2017;122.0;e;;0.0 D;DG;WZ08-774;NOMINAL;2018;127.9;e;;0.0 D;DG;WZ08-774;NOMINAL;2019;98.4;e;;0.0 D;DG;WZ08-774;NOMINAL;2020;48.9;e;;0.0 -D;DG;WZ08-774;NOMINAL;2021;51.2;p;;0.0 -D;DG;WZ08-774;NOMINAL;2022;56.7;p;;0.0 +D;DG;WZ08-774;NOMINAL;2021;51.2;e;;0.0 +D;DG;WZ08-774;NOMINAL;2022;56.7;e;;0.0 +D;DG;WZ08-774;NOMINAL;2023;54.6;p;;0.0 D;DG;WZ08-774;REAL;2015;100.0;e;;0.0 D;DG;WZ08-774;REAL;2016;104.8;e;;0.0 D;DG;WZ08-774;REAL;2017;118.4;e;;0.0 D;DG;WZ08-774;REAL;2018;123.3;e;;0.0 D;DG;WZ08-774;REAL;2019;94.3;e;;0.0 D;DG;WZ08-774;REAL;2020;46.5;e;;0.0 -D;DG;WZ08-774;REAL;2021;48.0;p;;0.0 -D;DG;WZ08-774;REAL;2022;51.7;p;;0.0 +D;DG;WZ08-774;REAL;2021;48.0;e;;0.0 +D;DG;WZ08-774;REAL;2022;51.7;e;;0.0 +D;DG;WZ08-774;REAL;2023;48.5;p;;0.0 D;DG;WZ08-77;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-77;NOMINAL;2016;105.8;e;;0.0 D;DG;WZ08-77;NOMINAL;2017;112.4;e;;0.0 D;DG;WZ08-77;NOMINAL;2018;118.4;e;;0.0 D;DG;WZ08-77;NOMINAL;2019;128.3;e;;0.0 D;DG;WZ08-77;NOMINAL;2020;120.2;e;;0.0 -D;DG;WZ08-77;NOMINAL;2021;162.1;p;;0.0 -D;DG;WZ08-77;NOMINAL;2022;179.3;p;;0.0 +D;DG;WZ08-77;NOMINAL;2021;162.1;e;;0.0 +D;DG;WZ08-77;NOMINAL;2022;178.9;e;;0.0 +D;DG;WZ08-77;NOMINAL;2023;185.5;p;;0.0 D;DG;WZ08-77;REAL;2015;100.0;e;;0.0 D;DG;WZ08-77;REAL;2016;104.9;e;;0.0 D;DG;WZ08-77;REAL;2017;110.5;e;;0.0 D;DG;WZ08-77;REAL;2018;115.2;e;;0.0 D;DG;WZ08-77;REAL;2019;123.9;e;;0.0 D;DG;WZ08-77;REAL;2020;116.2;e;;0.0 -D;DG;WZ08-77;REAL;2021;152.3;p;;0.0 -D;DG;WZ08-77;REAL;2022;159.2;p;;0.0 +D;DG;WZ08-77;REAL;2021;152.3;e;;0.0 +D;DG;WZ08-77;REAL;2022;158.9;e;;0.0 +D;DG;WZ08-77;REAL;2023;157.1;p;;0.0 D;DG;WZ08-781;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-781;NOMINAL;2016;114.3;e;;0.0 D;DG;WZ08-781;NOMINAL;2017;124.6;e;;0.0 D;DG;WZ08-781;NOMINAL;2018;141.2;e;;0.0 D;DG;WZ08-781;NOMINAL;2019;141.8;e;;0.0 D;DG;WZ08-781;NOMINAL;2020;120.7;e;;0.0 -D;DG;WZ08-781;NOMINAL;2021;150.8;p;;0.0 -D;DG;WZ08-781;NOMINAL;2022;175.0;p;;0.0 +D;DG;WZ08-781;NOMINAL;2021;150.8;e;;0.0 +D;DG;WZ08-781;NOMINAL;2022;175.0;e;;0.0 +D;DG;WZ08-781;NOMINAL;2023;182.0;p;;0.0 D;DG;WZ08-781;REAL;2015;100.0;e;;0.0 D;DG;WZ08-781;REAL;2016;111.4;e;;0.0 D;DG;WZ08-781;REAL;2017;118.5;e;;0.0 D;DG;WZ08-781;REAL;2018;130.0;e;;0.0 D;DG;WZ08-781;REAL;2019;126.0;e;;0.0 -D;DG;WZ08-781;REAL;2020;108.8;e;;0.0 -D;DG;WZ08-781;REAL;2021;131.3;p;;0.0 -D;DG;WZ08-781;REAL;2022;145.4;p;;0.0 +D;DG;WZ08-781;REAL;2020;108.9;e;;0.0 +D;DG;WZ08-781;REAL;2021;131.3;e;;0.0 +D;DG;WZ08-781;REAL;2022;146.6;e;;0.0 +D;DG;WZ08-781;REAL;2023;144.2;p;;0.0 D;DG;WZ08-782;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-782;NOMINAL;2016;104.0;e;;0.0 D;DG;WZ08-782;NOMINAL;2017;111.1;e;;0.0 D;DG;WZ08-782;NOMINAL;2018;112.5;e;;0.0 D;DG;WZ08-782;NOMINAL;2019;102.8;e;;0.0 D;DG;WZ08-782;NOMINAL;2020;83.0;e;;0.0 -D;DG;WZ08-782;NOMINAL;2021;95.2;p;;0.0 -D;DG;WZ08-782;NOMINAL;2022;103.1;p;;0.0 +D;DG;WZ08-782;NOMINAL;2021;95.2;e;;0.0 +D;DG;WZ08-782;NOMINAL;2022;103.0;e;;0.0 +D;DG;WZ08-782;NOMINAL;2023;104.9;p;;0.0 D;DG;WZ08-782;REAL;2015;100.0;e;;0.0 D;DG;WZ08-782;REAL;2016;101.7;e;;0.0 D;DG;WZ08-782;REAL;2017;106.1;e;;0.0 D;DG;WZ08-782;REAL;2018;104.3;e;;0.0 D;DG;WZ08-782;REAL;2019;92.7;e;;0.0 D;DG;WZ08-782;REAL;2020;72.9;e;;0.0 -D;DG;WZ08-782;REAL;2021;81.3;p;;0.0 -D;DG;WZ08-782;REAL;2022;84.4;p;;0.0 +D;DG;WZ08-782;REAL;2021;81.3;e;;0.0 +D;DG;WZ08-782;REAL;2022;84.5;e;;0.0 +D;DG;WZ08-782;REAL;2023;80.7;p;;0.0 D;DG;WZ08-783;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-783;NOMINAL;2016;95.9;e;;0.0 D;DG;WZ08-783;NOMINAL;2017;115.0;e;;0.0 D;DG;WZ08-783;NOMINAL;2018;93.5;e;;0.0 D;DG;WZ08-783;NOMINAL;2019;84.4;e;;0.0 D;DG;WZ08-783;NOMINAL;2020;75.9;e;;0.0 -D;DG;WZ08-783;NOMINAL;2021;83.9;p;;0.0 -D;DG;WZ08-783;NOMINAL;2022;90.9;p;;0.0 +D;DG;WZ08-783;NOMINAL;2021;83.9;e;;0.0 +D;DG;WZ08-783;NOMINAL;2022;90.8;e;;0.0 +D;DG;WZ08-783;NOMINAL;2023;93.7;p;;0.0 D;DG;WZ08-783;REAL;2015;100.0;e;;0.0 D;DG;WZ08-783;REAL;2016;93.8;e;;0.0 D;DG;WZ08-783;REAL;2017;109.8;e;;0.0 D;DG;WZ08-783;REAL;2018;86.7;e;;0.0 D;DG;WZ08-783;REAL;2019;76.1;e;;0.0 D;DG;WZ08-783;REAL;2020;66.8;e;;0.0 -D;DG;WZ08-783;REAL;2021;71.8;p;;0.0 -D;DG;WZ08-783;REAL;2022;74.5;p;;0.0 +D;DG;WZ08-783;REAL;2021;71.8;e;;0.0 +D;DG;WZ08-783;REAL;2022;74.6;e;;0.0 +D;DG;WZ08-783;REAL;2023;72.3;p;;0.0 D;DG;WZ08-78;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-78;NOMINAL;2016;103.4;e;;0.0 D;DG;WZ08-78;NOMINAL;2017;112.7;e;;0.0 D;DG;WZ08-78;NOMINAL;2018;111.4;e;;0.0 D;DG;WZ08-78;NOMINAL;2019;102.5;e;;0.0 D;DG;WZ08-78;NOMINAL;2020;84.4;e;;0.0 -D;DG;WZ08-78;NOMINAL;2021;97.2;p;;0.0 -D;DG;WZ08-78;NOMINAL;2022;106.0;p;;0.0 +D;DG;WZ08-78;NOMINAL;2021;97.2;e;;0.0 +D;DG;WZ08-78;NOMINAL;2022;106.0;e;;0.0 +D;DG;WZ08-78;NOMINAL;2023;108.3;p;;0.0 D;DG;WZ08-78;REAL;2015;100.0;e;;0.0 D;DG;WZ08-78;REAL;2016;101.1;e;;0.0 D;DG;WZ08-78;REAL;2017;107.6;e;;0.0 D;DG;WZ08-78;REAL;2018;103.3;e;;0.0 D;DG;WZ08-78;REAL;2019;92.4;e;;0.0 D;DG;WZ08-78;REAL;2020;74.3;e;;0.0 -D;DG;WZ08-78;REAL;2021;83.2;p;;0.0 -D;DG;WZ08-78;REAL;2022;87.0;p;;0.0 +D;DG;WZ08-78;REAL;2021;83.2;e;;0.0 +D;DG;WZ08-78;REAL;2022;87.1;e;;0.0 +D;DG;WZ08-78;REAL;2023;83.7;p;;0.0 D;DG;WZ08-7911;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7911;NOMINAL;2016;106.7;e;;0.0 D;DG;WZ08-7911;NOMINAL;2017;112.0;e;;0.0 D;DG;WZ08-7911;NOMINAL;2018;114.3;e;;0.0 D;DG;WZ08-7911;NOMINAL;2019;114.4;e;;0.0 D;DG;WZ08-7911;NOMINAL;2020;41.6;e;;0.0 -D;DG;WZ08-7911;NOMINAL;2021;50.7;p;;0.0 -D;DG;WZ08-7911;NOMINAL;2022;79.5;p;;0.0 +D;DG;WZ08-7911;NOMINAL;2021;50.7;e;;0.0 +D;DG;WZ08-7911;NOMINAL;2022;82.9;e;;0.0 +D;DG;WZ08-7911;NOMINAL;2023;112.3;p;;0.0 D;DG;WZ08-7912;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-7912;NOMINAL;2016;97.3;e;;0.0 D;DG;WZ08-7912;NOMINAL;2017;104.7;e;;0.0 D;DG;WZ08-7912;NOMINAL;2018;109.5;e;;0.0 D;DG;WZ08-7912;NOMINAL;2019;111.3;e;;0.0 D;DG;WZ08-7912;NOMINAL;2020;30.5;e;;0.0 -D;DG;WZ08-7912;NOMINAL;2021;57.0;p;;0.0 -D;DG;WZ08-7912;NOMINAL;2022;122.8;p;;0.0 +D;DG;WZ08-7912;NOMINAL;2021;57.0;e;;0.0 +D;DG;WZ08-7912;NOMINAL;2022;122.8;e;;0.0 +D;DG;WZ08-7912;NOMINAL;2023;152.2;p;;0.0 D;DG;WZ08-791;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-791;NOMINAL;2016;99.0;e;;0.0 D;DG;WZ08-791;NOMINAL;2017;106.0;e;;0.0 D;DG;WZ08-791;NOMINAL;2018;110.3;e;;0.0 D;DG;WZ08-791;NOMINAL;2019;111.9;e;;0.0 D;DG;WZ08-791;NOMINAL;2020;32.4;e;;0.0 -D;DG;WZ08-791;NOMINAL;2021;55.9;p;;0.0 -D;DG;WZ08-791;NOMINAL;2022;115.3;p;;0.0 +D;DG;WZ08-791;NOMINAL;2021;55.9;e;;0.0 +D;DG;WZ08-791;NOMINAL;2022;115.9;e;;0.0 +D;DG;WZ08-791;NOMINAL;2023;145.3;p;;0.0 D;DG;WZ08-791;REAL;2015;100.0;e;;0.0 D;DG;WZ08-791;REAL;2016;100.7;e;;0.0 D;DG;WZ08-791;REAL;2017;105.2;e;;0.0 D;DG;WZ08-791;REAL;2018;106.4;e;;0.0 D;DG;WZ08-791;REAL;2019;107.6;e;;0.0 D;DG;WZ08-791;REAL;2020;35.3;e;;0.0 -D;DG;WZ08-791;REAL;2021;51.9;p;;0.0 -D;DG;WZ08-791;REAL;2022;99.6;p;;0.0 +D;DG;WZ08-791;REAL;2021;51.9;e;;0.0 +D;DG;WZ08-791;REAL;2022;100.1;e;;0.0 +D;DG;WZ08-791;REAL;2023;115.6;p;;0.0 D;DG;WZ08-799;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-799;NOMINAL;2016;109.2;e;;0.0 D;DG;WZ08-799;NOMINAL;2017;116.3;e;;0.0 D;DG;WZ08-799;NOMINAL;2018;122.5;e;;0.0 D;DG;WZ08-799;NOMINAL;2019;113.9;e;;0.0 D;DG;WZ08-799;NOMINAL;2020;43.4;e;;0.0 -D;DG;WZ08-799;NOMINAL;2021;54.7;p;;0.0 -D;DG;WZ08-799;NOMINAL;2022;94.4;p;;0.0 +D;DG;WZ08-799;NOMINAL;2021;54.7;e;;0.0 +D;DG;WZ08-799;NOMINAL;2022;94.4;e;;0.0 +D;DG;WZ08-799;NOMINAL;2023;111.1;p;;0.0 D;DG;WZ08-799;REAL;2015;100.0;e;;0.0 D;DG;WZ08-799;REAL;2016;111.0;e;;0.0 D;DG;WZ08-799;REAL;2017;116.3;e;;0.0 D;DG;WZ08-799;REAL;2018;119.3;e;;0.0 D;DG;WZ08-799;REAL;2019;110.9;e;;0.0 D;DG;WZ08-799;REAL;2020;46.1;e;;0.0 -D;DG;WZ08-799;REAL;2021;51.4;p;;0.0 -D;DG;WZ08-799;REAL;2022;82.7;p;;0.0 +D;DG;WZ08-799;REAL;2021;51.4;e;;0.0 +D;DG;WZ08-799;REAL;2022;82.7;e;;0.0 +D;DG;WZ08-799;REAL;2023;87.6;p;;0.0 D;DG;WZ08-79;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-79;NOMINAL;2016;99.5;e;;0.0 D;DG;WZ08-79;NOMINAL;2017;106.5;e;;0.0 D;DG;WZ08-79;NOMINAL;2018;110.9;e;;0.0 D;DG;WZ08-79;NOMINAL;2019;112.0;e;;0.0 D;DG;WZ08-79;NOMINAL;2020;32.9;e;;0.0 -D;DG;WZ08-79;NOMINAL;2021;55.8;p;;0.0 -D;DG;WZ08-79;NOMINAL;2022;114.3;p;;0.0 +D;DG;WZ08-79;NOMINAL;2021;55.8;e;;0.0 +D;DG;WZ08-79;NOMINAL;2022;114.8;e;;0.0 +D;DG;WZ08-79;NOMINAL;2023;143.6;p;;0.0 D;DG;WZ08-79;REAL;2015;100.0;e;;0.0 D;DG;WZ08-79;REAL;2016;101.2;e;;0.0 D;DG;WZ08-79;REAL;2017;105.8;e;;0.0 D;DG;WZ08-79;REAL;2018;107.1;e;;0.0 D;DG;WZ08-79;REAL;2019;107.8;e;;0.0 D;DG;WZ08-79;REAL;2020;35.8;e;;0.0 -D;DG;WZ08-79;REAL;2021;51.8;p;;0.0 -D;DG;WZ08-79;REAL;2022;98.7;p;;0.0 +D;DG;WZ08-79;REAL;2021;51.8;e;;0.0 +D;DG;WZ08-79;REAL;2022;99.2;e;;0.0 +D;DG;WZ08-79;REAL;2023;114.2;p;;0.0 D;DG;WZ08-801;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-801;NOMINAL;2016;120.7;e;;0.0 D;DG;WZ08-801;NOMINAL;2017;115.6;e;;0.0 D;DG;WZ08-801;NOMINAL;2018;113.4;e;;0.0 D;DG;WZ08-801;NOMINAL;2019;120.3;e;;0.0 D;DG;WZ08-801;NOMINAL;2020;128.1;e;;0.0 -D;DG;WZ08-801;NOMINAL;2021;143.0;p;;0.0 -D;DG;WZ08-801;NOMINAL;2022;158.6;p;;0.0 +D;DG;WZ08-801;NOMINAL;2021;143.0;e;;0.0 +D;DG;WZ08-801;NOMINAL;2022;158.0;e;;0.0 +D;DG;WZ08-801;NOMINAL;2023;177.9;p;;0.0 D;DG;WZ08-801;REAL;2015;100.0;e;;0.0 D;DG;WZ08-801;REAL;2016;117.6;e;;0.0 D;DG;WZ08-801;REAL;2017;109.1;e;;0.0 D;DG;WZ08-801;REAL;2018;104.4;e;;0.0 D;DG;WZ08-801;REAL;2019;107.2;e;;0.0 D;DG;WZ08-801;REAL;2020;111.1;e;;0.0 -D;DG;WZ08-801;REAL;2021;121.9;p;;0.0 -D;DG;WZ08-801;REAL;2022;131.4;p;;0.0 +D;DG;WZ08-801;REAL;2021;121.9;e;;0.0 +D;DG;WZ08-801;REAL;2022;130.9;e;;0.0 +D;DG;WZ08-801;REAL;2023;136.9;p;;0.0 D;DG;WZ08-802;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-802;NOMINAL;2016;111.1;e;;0.0 D;DG;WZ08-802;NOMINAL;2017;104.0;e;;0.0 D;DG;WZ08-802;NOMINAL;2018;110.7;e;;0.0 D;DG;WZ08-802;NOMINAL;2019;114.4;e;;0.0 D;DG;WZ08-802;NOMINAL;2020;124.0;e;;0.0 -D;DG;WZ08-802;NOMINAL;2021;123.4;p;;0.0 -D;DG;WZ08-802;NOMINAL;2022;135.3;p;;0.0 +D;DG;WZ08-802;NOMINAL;2021;123.4;e;;0.0 +D;DG;WZ08-802;NOMINAL;2022;135.0;e;;0.0 +D;DG;WZ08-802;NOMINAL;2023;142.9;p;;0.0 D;DG;WZ08-802;REAL;2015;100.0;e;;0.0 D;DG;WZ08-802;REAL;2016;108.2;e;;0.0 D;DG;WZ08-802;REAL;2017;98.1;e;;0.0 D;DG;WZ08-802;REAL;2018;102.0;e;;0.0 D;DG;WZ08-802;REAL;2019;102.0;e;;0.0 D;DG;WZ08-802;REAL;2020;107.5;e;;0.0 -D;DG;WZ08-802;REAL;2021;105.2;p;;0.0 -D;DG;WZ08-802;REAL;2022;112.0;p;;0.0 +D;DG;WZ08-802;REAL;2021;105.2;e;;0.0 +D;DG;WZ08-802;REAL;2022;111.8;e;;0.0 +D;DG;WZ08-802;REAL;2023;110.1;p;;0.0 D;DG;WZ08-803;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-803;NOMINAL;2016;114.7;e;;0.0 D;DG;WZ08-803;NOMINAL;2017;92.0;e;;0.0 D;DG;WZ08-803;NOMINAL;2018;89.3;e;;0.0 D;DG;WZ08-803;NOMINAL;2019;82.7;e;;0.0 D;DG;WZ08-803;NOMINAL;2020;83.6;e;;0.0 -D;DG;WZ08-803;NOMINAL;2021;87.7;p;;0.0 -D;DG;WZ08-803;NOMINAL;2022;94.9;p;;0.0 +D;DG;WZ08-803;NOMINAL;2021;87.7;e;;0.0 +D;DG;WZ08-803;NOMINAL;2022;94.9;e;;0.0 +D;DG;WZ08-803;NOMINAL;2023;102.7;p;;0.0 D;DG;WZ08-803;REAL;2015;100.0;e;;0.0 D;DG;WZ08-803;REAL;2016;111.7;e;;0.0 D;DG;WZ08-803;REAL;2017;86.8;e;;0.0 D;DG;WZ08-803;REAL;2018;82.3;e;;0.0 D;DG;WZ08-803;REAL;2019;73.7;e;;0.0 D;DG;WZ08-803;REAL;2020;72.5;e;;0.0 -D;DG;WZ08-803;REAL;2021;74.7;p;;0.0 -D;DG;WZ08-803;REAL;2022;78.6;p;;0.0 +D;DG;WZ08-803;REAL;2021;74.7;e;;0.0 +D;DG;WZ08-803;REAL;2022;78.6;e;;0.0 +D;DG;WZ08-803;REAL;2023;79.1;p;;0.0 D;DG;WZ08-80;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-80;NOMINAL;2016;119.5;e;;0.0 D;DG;WZ08-80;NOMINAL;2017;113.7;e;;0.0 D;DG;WZ08-80;NOMINAL;2018;112.4;e;;0.0 D;DG;WZ08-80;NOMINAL;2019;118.5;e;;0.0 D;DG;WZ08-80;NOMINAL;2020;126.4;e;;0.0 -D;DG;WZ08-80;NOMINAL;2021;139.3;p;;0.0 -D;DG;WZ08-80;NOMINAL;2022;154.3;p;;0.0 +D;DG;WZ08-80;NOMINAL;2021;139.3;e;;0.0 +D;DG;WZ08-80;NOMINAL;2022;153.7;e;;0.0 +D;DG;WZ08-80;NOMINAL;2023;171.9;p;;0.0 D;DG;WZ08-80;REAL;2015;100.0;e;;0.0 D;DG;WZ08-80;REAL;2016;116.4;e;;0.0 D;DG;WZ08-80;REAL;2017;107.3;e;;0.0 D;DG;WZ08-80;REAL;2018;103.5;e;;0.0 D;DG;WZ08-80;REAL;2019;105.7;e;;0.0 D;DG;WZ08-80;REAL;2020;109.6;e;;0.0 -D;DG;WZ08-80;REAL;2021;118.8;p;;0.0 -D;DG;WZ08-80;REAL;2022;127.8;p;;0.0 +D;DG;WZ08-80;REAL;2021;118.8;e;;0.0 +D;DG;WZ08-80;REAL;2022;127.3;e;;0.0 +D;DG;WZ08-80;REAL;2023;132.4;p;;0.0 D;DG;WZ08-811;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-811;NOMINAL;2016;103.8;e;;0.0 D;DG;WZ08-811;NOMINAL;2017;107.0;e;;0.0 D;DG;WZ08-811;NOMINAL;2018;112.2;e;;0.0 D;DG;WZ08-811;NOMINAL;2019;123.4;e;;0.0 D;DG;WZ08-811;NOMINAL;2020;115.1;e;;0.0 -D;DG;WZ08-811;NOMINAL;2021;123.1;p;;0.0 -D;DG;WZ08-811;NOMINAL;2022;134.0;p;;0.0 +D;DG;WZ08-811;NOMINAL;2021;123.1;e;;0.0 +D;DG;WZ08-811;NOMINAL;2022;133.4;e;;0.0 +D;DG;WZ08-811;NOMINAL;2023;142.7;p;;0.0 D;DG;WZ08-811;REAL;2015;100.0;e;;0.0 D;DG;WZ08-811;REAL;2016;101.9;e;;0.0 D;DG;WZ08-811;REAL;2017;103.2;e;;0.0 D;DG;WZ08-811;REAL;2018;105.8;e;;0.0 D;DG;WZ08-811;REAL;2019;113.7;e;;0.0 D;DG;WZ08-811;REAL;2020;104.2;e;;0.0 -D;DG;WZ08-811;REAL;2021;108.4;p;;0.0 -D;DG;WZ08-811;REAL;2022;112.4;p;;0.0 +D;DG;WZ08-811;REAL;2021;108.4;e;;0.0 +D;DG;WZ08-811;REAL;2022;112.1;e;;0.0 +D;DG;WZ08-811;REAL;2023;111.1;p;;0.0 D;DG;WZ08-8121;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8121;NOMINAL;2016;107.4;e;;0.0 D;DG;WZ08-8121;NOMINAL;2017;109.7;e;;0.0 D;DG;WZ08-8121;NOMINAL;2018;115.8;e;;0.0 D;DG;WZ08-8121;NOMINAL;2019;120.9;e;;0.0 D;DG;WZ08-8121;NOMINAL;2020;119.7;e;;0.0 -D;DG;WZ08-8121;NOMINAL;2021;135.4;p;;0.0 -D;DG;WZ08-8121;NOMINAL;2022;150.6;p;;0.0 +D;DG;WZ08-8121;NOMINAL;2021;135.4;e;;0.0 +D;DG;WZ08-8121;NOMINAL;2022;150.6;e;;0.0 +D;DG;WZ08-8121;NOMINAL;2023;163.0;p;;0.0 D;DG;WZ08-8122;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8122;NOMINAL;2016;107.2;e;;0.0 D;DG;WZ08-8122;NOMINAL;2017;106.6;e;;0.0 D;DG;WZ08-8122;NOMINAL;2018;117.8;e;;0.0 D;DG;WZ08-8122;NOMINAL;2019;123.3;e;;0.0 D;DG;WZ08-8122;NOMINAL;2020;126.2;e;;0.0 -D;DG;WZ08-8122;NOMINAL;2021;132.1;p;;0.0 -D;DG;WZ08-8122;NOMINAL;2022;142.8;p;;0.0 +D;DG;WZ08-8122;NOMINAL;2021;132.1;e;;0.0 +D;DG;WZ08-8122;NOMINAL;2022;142.8;e;;0.0 +D;DG;WZ08-8122;NOMINAL;2023;159.6;p;;0.0 D;DG;WZ08-8129;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8129;NOMINAL;2016;106.4;e;;0.0 D;DG;WZ08-8129;NOMINAL;2017;117.8;e;;0.0 D;DG;WZ08-8129;NOMINAL;2018;122.5;e;;0.0 D;DG;WZ08-8129;NOMINAL;2019;128.7;e;;0.0 D;DG;WZ08-8129;NOMINAL;2020;131.5;e;;0.0 -D;DG;WZ08-8129;NOMINAL;2021;139.5;p;;0.0 -D;DG;WZ08-8129;NOMINAL;2022;150.3;p;;0.0 +D;DG;WZ08-8129;NOMINAL;2021;139.5;e;;0.0 +D;DG;WZ08-8129;NOMINAL;2022;150.3;e;;0.0 +D;DG;WZ08-8129;NOMINAL;2023;163.0;p;;0.0 D;DG;WZ08-812;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-812;NOMINAL;2016;107.3;e;;0.0 D;DG;WZ08-812;NOMINAL;2017;109.8;e;;0.0 D;DG;WZ08-812;NOMINAL;2018;116.7;e;;0.0 D;DG;WZ08-812;NOMINAL;2019;121.9;e;;0.0 D;DG;WZ08-812;NOMINAL;2020;121.8;e;;0.0 -D;DG;WZ08-812;NOMINAL;2021;135.2;p;;0.0 -D;DG;WZ08-812;NOMINAL;2022;149.2;p;;0.0 +D;DG;WZ08-812;NOMINAL;2021;135.2;e;;0.0 +D;DG;WZ08-812;NOMINAL;2022;149.2;e;;0.0 +D;DG;WZ08-812;NOMINAL;2023;162.4;p;;0.0 D;DG;WZ08-812;REAL;2015;100.0;e;;0.0 D;DG;WZ08-812;REAL;2016;105.2;e;;0.0 D;DG;WZ08-812;REAL;2017;105.9;e;;0.0 D;DG;WZ08-812;REAL;2018;110.1;e;;0.0 D;DG;WZ08-812;REAL;2019;112.4;e;;0.0 D;DG;WZ08-812;REAL;2020;110.3;e;;0.0 -D;DG;WZ08-812;REAL;2021;119.0;p;;0.0 -D;DG;WZ08-812;REAL;2022;125.3;p;;0.0 +D;DG;WZ08-812;REAL;2021;119.0;e;;0.0 +D;DG;WZ08-812;REAL;2022;125.4;e;;0.0 +D;DG;WZ08-812;REAL;2023;126.4;p;;0.0 D;DG;WZ08-813;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-813;NOMINAL;2016;155.5;e;;0.0 D;DG;WZ08-813;NOMINAL;2017;165.1;e;;0.0 D;DG;WZ08-813;NOMINAL;2018;182.0;e;;0.0 D;DG;WZ08-813;NOMINAL;2019;198.7;e;;0.0 D;DG;WZ08-813;NOMINAL;2020;214.5;e;;0.0 -D;DG;WZ08-813;NOMINAL;2021;229.3;p;;0.0 -D;DG;WZ08-813;NOMINAL;2022;251.3;p;;0.0 +D;DG;WZ08-813;NOMINAL;2021;229.3;e;;0.0 +D;DG;WZ08-813;NOMINAL;2022;251.3;e;;0.0 +D;DG;WZ08-813;NOMINAL;2023;259.5;p;;0.0 D;DG;WZ08-813;REAL;2015;100.0;e;;0.0 D;DG;WZ08-813;REAL;2016;150.8;e;;0.0 D;DG;WZ08-813;REAL;2017;155.7;e;;0.0 D;DG;WZ08-813;REAL;2018;167.0;e;;0.0 D;DG;WZ08-813;REAL;2019;177.4;e;;0.0 D;DG;WZ08-813;REAL;2020;188.8;e;;0.0 -D;DG;WZ08-813;REAL;2021;196.9;p;;0.0 -D;DG;WZ08-813;REAL;2022;207.3;p;;0.0 +D;DG;WZ08-813;REAL;2021;196.9;e;;0.0 +D;DG;WZ08-813;REAL;2022;207.3;e;;0.0 +D;DG;WZ08-813;REAL;2023;197.1;p;;0.0 D;DG;WZ08-81;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-81;NOMINAL;2016;120.2;e;;0.0 D;DG;WZ08-81;NOMINAL;2017;124.8;e;;0.0 D;DG;WZ08-81;NOMINAL;2018;134.2;e;;0.0 D;DG;WZ08-81;NOMINAL;2019;143.8;e;;0.0 D;DG;WZ08-81;NOMINAL;2020;146.6;e;;0.0 -D;DG;WZ08-81;NOMINAL;2021;159.4;p;;0.0 -D;DG;WZ08-81;NOMINAL;2022;175.1;p;;0.0 +D;DG;WZ08-81;NOMINAL;2021;159.4;e;;0.0 +D;DG;WZ08-81;NOMINAL;2022;175.0;e;;0.0 +D;DG;WZ08-81;NOMINAL;2023;186.0;p;;0.0 D;DG;WZ08-81;REAL;2015;100.0;e;;0.0 D;DG;WZ08-81;REAL;2016;117.4;e;;0.0 D;DG;WZ08-81;REAL;2017;119.4;e;;0.0 D;DG;WZ08-81;REAL;2018;125.2;e;;0.0 D;DG;WZ08-81;REAL;2019;130.9;e;;0.0 D;DG;WZ08-81;REAL;2020;131.2;e;;0.0 -D;DG;WZ08-81;REAL;2021;138.9;p;;0.0 -D;DG;WZ08-81;REAL;2022;146.0;p;;0.0 +D;DG;WZ08-81;REAL;2021;139.0;e;;0.0 +D;DG;WZ08-81;REAL;2022;145.9;e;;0.0 +D;DG;WZ08-81;REAL;2023;143.4;p;;0.0 D;DG;WZ08-8211;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8211;NOMINAL;2016;79.7;e;;0.0 D;DG;WZ08-8211;NOMINAL;2017;88.0;e;;0.0 D;DG;WZ08-8211;NOMINAL;2018;112.0;e;;0.0 D;DG;WZ08-8211;NOMINAL;2019;111.7;e;;0.0 D;DG;WZ08-8211;NOMINAL;2020;102.9;e;;0.0 -D;DG;WZ08-8211;NOMINAL;2021;117.8;p;;0.0 -D;DG;WZ08-8211;NOMINAL;2022;143.5;p;;0.0 +D;DG;WZ08-8211;NOMINAL;2021;117.8;e;;0.0 +D;DG;WZ08-8211;NOMINAL;2022;143.5;e;;0.0 +D;DG;WZ08-8211;NOMINAL;2023;189.9;p;;0.0 D;DG;WZ08-8219;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8219;NOMINAL;2016;87.0;e;;0.0 D;DG;WZ08-8219;NOMINAL;2017;81.3;e;;0.0 D;DG;WZ08-8219;NOMINAL;2018;81.3;e;;0.0 D;DG;WZ08-8219;NOMINAL;2019;73.4;e;;0.0 D;DG;WZ08-8219;NOMINAL;2020;71.1;e;;0.0 -D;DG;WZ08-8219;NOMINAL;2021;66.6;p;;0.0 -D;DG;WZ08-8219;NOMINAL;2022;69.3;p;;0.0 +D;DG;WZ08-8219;NOMINAL;2021;66.6;e;;0.0 +D;DG;WZ08-8219;NOMINAL;2022;69.3;e;;0.0 +D;DG;WZ08-8219;NOMINAL;2023;68.5;p;;0.0 D;DG;WZ08-821;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-821;NOMINAL;2016;82.7;e;;0.0 D;DG;WZ08-821;NOMINAL;2017;85.2;e;;0.0 D;DG;WZ08-821;NOMINAL;2018;99.4;e;;0.0 D;DG;WZ08-821;NOMINAL;2019;95.9;e;;0.0 D;DG;WZ08-821;NOMINAL;2020;89.8;e;;0.0 -D;DG;WZ08-821;NOMINAL;2021;96.7;p;;0.0 -D;DG;WZ08-821;NOMINAL;2022;112.9;p;;0.0 +D;DG;WZ08-821;NOMINAL;2021;96.7;e;;0.0 +D;DG;WZ08-821;NOMINAL;2022;112.9;e;;0.0 +D;DG;WZ08-821;NOMINAL;2023;139.8;p;;0.0 D;DG;WZ08-821;REAL;2015;100.0;e;;0.0 D;DG;WZ08-821;REAL;2016;81.7;e;;0.0 D;DG;WZ08-821;REAL;2017;82.8;e;;0.0 D;DG;WZ08-821;REAL;2018;95.2;e;;0.0 D;DG;WZ08-821;REAL;2019;90.6;e;;0.0 D;DG;WZ08-821;REAL;2020;84.3;e;;0.0 -D;DG;WZ08-821;REAL;2021;85.6;p;;0.0 -D;DG;WZ08-821;REAL;2022;97.5;p;;0.0 +D;DG;WZ08-821;REAL;2021;85.6;e;;0.0 +D;DG;WZ08-821;REAL;2022;97.5;e;;0.0 +D;DG;WZ08-821;REAL;2023;116.0;p;;0.0 D;DG;WZ08-822;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-822;NOMINAL;2016;103.5;e;;0.0 D;DG;WZ08-822;NOMINAL;2017;121.7;e;;0.0 D;DG;WZ08-822;NOMINAL;2018;132.7;e;;0.0 D;DG;WZ08-822;NOMINAL;2019;124.7;e;;0.0 D;DG;WZ08-822;NOMINAL;2020;131.8;e;;0.0 -D;DG;WZ08-822;NOMINAL;2021;126.4;p;;0.0 -D;DG;WZ08-822;NOMINAL;2022;125.8;p;;0.0 +D;DG;WZ08-822;NOMINAL;2021;126.4;e;;0.0 +D;DG;WZ08-822;NOMINAL;2022;126.1;e;;0.0 +D;DG;WZ08-822;NOMINAL;2023;132.9;p;;0.0 D;DG;WZ08-822;REAL;2015;100.0;e;;0.0 D;DG;WZ08-822;REAL;2016;102.1;e;;0.0 D;DG;WZ08-822;REAL;2017;118.2;e;;0.0 D;DG;WZ08-822;REAL;2018;127.2;e;;0.0 D;DG;WZ08-822;REAL;2019;115.5;e;;0.0 D;DG;WZ08-822;REAL;2020;118.5;e;;0.0 -D;DG;WZ08-822;REAL;2021;110.9;p;;0.0 -D;DG;WZ08-822;REAL;2022;104.6;p;;0.0 +D;DG;WZ08-822;REAL;2021;110.9;e;;0.0 +D;DG;WZ08-822;REAL;2022;105.1;e;;0.0 +D;DG;WZ08-822;REAL;2023;106.4;p;;0.0 D;DG;WZ08-823;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-823;NOMINAL;2016;107.1;e;;0.0 D;DG;WZ08-823;NOMINAL;2017;110.3;e;;0.0 D;DG;WZ08-823;NOMINAL;2018;111.5;e;;0.0 D;DG;WZ08-823;NOMINAL;2019;107.3;e;;0.0 D;DG;WZ08-823;NOMINAL;2020;50.6;e;;0.0 -D;DG;WZ08-823;NOMINAL;2021;62.9;p;;0.0 -D;DG;WZ08-823;NOMINAL;2022;107.1;p;;0.0 +D;DG;WZ08-823;NOMINAL;2021;62.9;e;;0.0 +D;DG;WZ08-823;NOMINAL;2022;107.4;e;;0.0 +D;DG;WZ08-823;NOMINAL;2023;119.9;p;;0.0 D;DG;WZ08-823;REAL;2015;100.0;e;;0.0 D;DG;WZ08-823;REAL;2016;104.3;e;;0.0 D;DG;WZ08-823;REAL;2017;104.7;e;;0.0 D;DG;WZ08-823;REAL;2018;103.6;e;;0.0 D;DG;WZ08-823;REAL;2019;97.6;e;;0.0 D;DG;WZ08-823;REAL;2020;44.9;e;;0.0 -D;DG;WZ08-823;REAL;2021;54.3;p;;0.0 -D;DG;WZ08-823;REAL;2022;89.2;p;;0.0 +D;DG;WZ08-823;REAL;2021;54.3;e;;0.0 +D;DG;WZ08-823;REAL;2022;89.4;e;;0.0 +D;DG;WZ08-823;REAL;2023;95.6;p;;0.0 D;DG;WZ08-8291;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8291;NOMINAL;2016;104.7;e;;0.0 D;DG;WZ08-8291;NOMINAL;2017;114.3;e;;0.0 D;DG;WZ08-8291;NOMINAL;2018;118.2;e;;0.0 D;DG;WZ08-8291;NOMINAL;2019;109.5;e;;0.0 D;DG;WZ08-8291;NOMINAL;2020;106.0;e;;0.0 -D;DG;WZ08-8291;NOMINAL;2021;103.0;p;;0.0 -D;DG;WZ08-8291;NOMINAL;2022;95.8;p;;0.0 +D;DG;WZ08-8291;NOMINAL;2021;103.0;e;;0.0 +D;DG;WZ08-8291;NOMINAL;2022;95.9;e;;0.0 +D;DG;WZ08-8291;NOMINAL;2023;100.1;p;;0.0 D;DG;WZ08-8292;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8292;NOMINAL;2016;111.4;e;;0.0 D;DG;WZ08-8292;NOMINAL;2017;113.9;e;;0.0 D;DG;WZ08-8292;NOMINAL;2018;115.5;e;;0.0 D;DG;WZ08-8292;NOMINAL;2019;121.4;e;;0.0 D;DG;WZ08-8292;NOMINAL;2020;143.8;e;;0.0 -D;DG;WZ08-8292;NOMINAL;2021;131.6;p;;0.0 -D;DG;WZ08-8292;NOMINAL;2022;147.3;p;;0.0 +D;DG;WZ08-8292;NOMINAL;2021;131.6;e;;0.0 +D;DG;WZ08-8292;NOMINAL;2022;146.1;e;;0.0 +D;DG;WZ08-8292;NOMINAL;2023;139.8;p;;0.0 D;DG;WZ08-8299;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-8299;NOMINAL;2016;96.2;e;;0.0 D;DG;WZ08-8299;NOMINAL;2017;96.7;e;;0.0 D;DG;WZ08-8299;NOMINAL;2018;101.4;e;;0.0 D;DG;WZ08-8299;NOMINAL;2019;103.0;e;;0.0 D;DG;WZ08-8299;NOMINAL;2020;98.2;e;;0.0 -D;DG;WZ08-8299;NOMINAL;2021;112.0;p;;0.0 -D;DG;WZ08-8299;NOMINAL;2022;126.9;p;;0.0 +D;DG;WZ08-8299;NOMINAL;2021;112.0;e;;0.0 +D;DG;WZ08-8299;NOMINAL;2022;126.8;e;;0.0 +D;DG;WZ08-8299;NOMINAL;2023;141.2;p;;0.0 D;DG;WZ08-829;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-829;NOMINAL;2016;98.5;e;;0.0 D;DG;WZ08-829;NOMINAL;2017;100.1;e;;0.0 D;DG;WZ08-829;NOMINAL;2018;104.4;e;;0.0 D;DG;WZ08-829;NOMINAL;2019;105.3;e;;0.0 D;DG;WZ08-829;NOMINAL;2020;103.1;e;;0.0 -D;DG;WZ08-829;NOMINAL;2021;112.8;p;;0.0 -D;DG;WZ08-829;NOMINAL;2022;125.3;p;;0.0 +D;DG;WZ08-829;NOMINAL;2021;112.8;e;;0.0 +D;DG;WZ08-829;NOMINAL;2022;125.2;e;;0.0 +D;DG;WZ08-829;NOMINAL;2023;136.6;p;;0.0 D;DG;WZ08-829;REAL;2015;100.0;e;;0.0 D;DG;WZ08-829;REAL;2016;97.3;e;;0.0 D;DG;WZ08-829;REAL;2017;97.4;e;;0.0 D;DG;WZ08-829;REAL;2018;100.1;e;;0.0 D;DG;WZ08-829;REAL;2019;99.5;e;;0.0 D;DG;WZ08-829;REAL;2020;96.9;e;;0.0 -D;DG;WZ08-829;REAL;2021;99.9;p;;0.0 -D;DG;WZ08-829;REAL;2022;108.2;p;;0.0 +D;DG;WZ08-829;REAL;2021;99.9;e;;0.0 +D;DG;WZ08-829;REAL;2022;108.1;e;;0.0 +D;DG;WZ08-829;REAL;2023;113.3;p;;0.0 D;DG;WZ08-82;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-82;NOMINAL;2016;99.8;e;;0.0 D;DG;WZ08-82;NOMINAL;2017;103.7;e;;0.0 D;DG;WZ08-82;NOMINAL;2018;108.7;e;;0.0 D;DG;WZ08-82;NOMINAL;2019;107.6;e;;0.0 D;DG;WZ08-82;NOMINAL;2020;98.3;e;;0.0 -D;DG;WZ08-82;NOMINAL;2021;106.5;p;;0.0 -D;DG;WZ08-82;NOMINAL;2022;122.2;p;;0.0 +D;DG;WZ08-82;NOMINAL;2021;106.5;e;;0.0 +D;DG;WZ08-82;NOMINAL;2022;122.2;e;;0.0 +D;DG;WZ08-82;NOMINAL;2023;133.8;p;;0.0 D;DG;WZ08-82;REAL;2015;100.0;e;;0.0 D;DG;WZ08-82;REAL;2016;98.3;e;;0.0 D;DG;WZ08-82;REAL;2017;100.5;e;;0.0 D;DG;WZ08-82;REAL;2018;103.7;e;;0.0 D;DG;WZ08-82;REAL;2019;100.9;e;;0.0 D;DG;WZ08-82;REAL;2020;91.3;e;;0.0 -D;DG;WZ08-82;REAL;2021;94.0;p;;0.0 -D;DG;WZ08-82;REAL;2022;104.6;p;;0.0 +D;DG;WZ08-82;REAL;2021;94.0;e;;0.0 +D;DG;WZ08-82;REAL;2022;104.6;e;;0.0 +D;DG;WZ08-82;REAL;2023;110.0;p;;0.0 D;DG;WZ08-H-02;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-H-02;NOMINAL;2016;105.4;e;;0.0 D;DG;WZ08-H-02;NOMINAL;2017;108.0;e;;0.0 D;DG;WZ08-H-02;NOMINAL;2018;111.8;e;;0.0 D;DG;WZ08-H-02;NOMINAL;2019;114.3;e;;0.0 D;DG;WZ08-H-02;NOMINAL;2020;107.2;e;;0.0 -D;DG;WZ08-H-02;NOMINAL;2021;121.1;p;;0.0 -D;DG;WZ08-H-02;NOMINAL;2022;137.6;p;;0.0 +D;DG;WZ08-H-02;NOMINAL;2021;121.0;e;;0.0 +D;DG;WZ08-H-02;NOMINAL;2022;137.3;e;;0.0 +D;DG;WZ08-H-02;NOMINAL;2023;140.3;p;;0.0 D;DG;WZ08-H-02;REAL;2015;100.0;e;;0.0 D;DG;WZ08-H-02;REAL;2016;105.5;e;;0.0 D;DG;WZ08-H-02;REAL;2017;106.2;e;;0.0 D;DG;WZ08-H-02;REAL;2018;108.5;e;;0.0 D;DG;WZ08-H-02;REAL;2019;109.6;e;;0.0 -D;DG;WZ08-H-02;REAL;2020;102.0;e;;0.0 -D;DG;WZ08-H-02;REAL;2021;108.7;p;;0.0 -D;DG;WZ08-H-02;REAL;2022;117.6;p;;0.0 +D;DG;WZ08-H-02;REAL;2020;101.9;e;;0.0 +D;DG;WZ08-H-02;REAL;2021;108.7;e;;0.0 +D;DG;WZ08-H-02;REAL;2022;117.6;e;;0.0 +D;DG;WZ08-H-02;REAL;2023;120.6;p;;0.0 D;DG;WZ08-H-04;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-H-04;NOMINAL;2016;105.5;e;;0.0 D;DG;WZ08-H-04;NOMINAL;2017;107.7;e;;0.0 D;DG;WZ08-H-04;NOMINAL;2018;111.5;e;;0.0 D;DG;WZ08-H-04;NOMINAL;2019;114.2;e;;0.0 D;DG;WZ08-H-04;NOMINAL;2020;102.3;e;;0.0 -D;DG;WZ08-H-04;NOMINAL;2021;115.2;p;;0.0 -D;DG;WZ08-H-04;NOMINAL;2022;131.9;p;;0.0 +D;DG;WZ08-H-04;NOMINAL;2021;115.1;e;;0.0 +D;DG;WZ08-H-04;NOMINAL;2022;131.7;e;;0.0 +D;DG;WZ08-H-04;NOMINAL;2023;134.8;p;;0.0 D;DG;WZ08-H-04;REAL;2015;100.0;e;;0.0 D;DG;WZ08-H-04;REAL;2016;105.3;e;;0.0 D;DG;WZ08-H-04;REAL;2017;105.7;e;;0.0 D;DG;WZ08-H-04;REAL;2018;107.9;e;;0.0 D;DG;WZ08-H-04;REAL;2019;109.1;e;;0.0 -D;DG;WZ08-H-04;REAL;2020;96.9;e;;0.0 -D;DG;WZ08-H-04;REAL;2021;103.5;p;;0.0 -D;DG;WZ08-H-04;REAL;2022;113.0;p;;0.0 +D;DG;WZ08-H-04;REAL;2020;96.8;e;;0.0 +D;DG;WZ08-H-04;REAL;2021;103.5;e;;0.0 +D;DG;WZ08-H-04;REAL;2022;113.0;e;;0.0 +D;DG;WZ08-H-04;REAL;2023;115.3;p;;0.0 D;DG;WZ08-H-05;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-H-05;NOMINAL;2016;105.6;e;;0.0 D;DG;WZ08-H-05;NOMINAL;2017;107.7;e;;0.0 D;DG;WZ08-H-05;NOMINAL;2018;111.3;e;;0.0 D;DG;WZ08-H-05;NOMINAL;2019;113.9;e;;0.0 -D;DG;WZ08-H-05;NOMINAL;2020;104.0;e;;0.0 -D;DG;WZ08-H-05;NOMINAL;2021;117.3;p;;0.0 -D;DG;WZ08-H-05;NOMINAL;2022;132.4;p;;0.0 +D;DG;WZ08-H-05;NOMINAL;2020;103.9;e;;0.0 +D;DG;WZ08-H-05;NOMINAL;2021;117.2;e;;0.0 +D;DG;WZ08-H-05;NOMINAL;2022;132.1;e;;0.0 +D;DG;WZ08-H-05;NOMINAL;2023;134.8;p;;0.0 D;DG;WZ08-H-05;REAL;2015;100.0;e;;0.0 D;DG;WZ08-H-05;REAL;2016;105.5;e;;0.0 D;DG;WZ08-H-05;REAL;2017;105.8;e;;0.0 D;DG;WZ08-H-05;REAL;2018;107.9;e;;0.0 D;DG;WZ08-H-05;REAL;2019;109.1;e;;0.0 D;DG;WZ08-H-05;REAL;2020;98.7;e;;0.0 -D;DG;WZ08-H-05;REAL;2021;105.6;p;;0.0 -D;DG;WZ08-H-05;REAL;2022;113.8;p;;0.0 -D;DG;WZ08-H-06;NOMINAL;2021;91.6;p;;0.0 -D;DG;WZ08-H-06;NOMINAL;2022;120.6;p;;0.0 -D;DG;WZ08-H-06;REAL;2021;84.8;p;;0.0 -D;DG;WZ08-H-06;REAL;2022;105.9;p;;0.0 -D;DG;WZ08-H-07;NOMINAL;2021;121.2;p;;0.0 -D;DG;WZ08-H-07;NOMINAL;2022;134.8;p;;0.0 -D;DG;WZ08-H-07;REAL;2021;108.2;p;;0.0 -D;DG;WZ08-H-07;REAL;2022;114.8;p;;0.0 +D;DG;WZ08-H-05;REAL;2021;105.6;e;;0.0 +D;DG;WZ08-H-05;REAL;2022;113.8;e;;0.0 +D;DG;WZ08-H-05;REAL;2023;116.3;p;;0.0 +D;DG;WZ08-H-06;NOMINAL;2020;82.0;e;;0.0 +D;DG;WZ08-H-06;NOMINAL;2021;91.5;e;;0.0 +D;DG;WZ08-H-06;NOMINAL;2022;120.0;e;;0.0 +D;DG;WZ08-H-06;NOMINAL;2023;129.3;p;;0.0 +D;DG;WZ08-H-06;REAL;2020;78.3;e;;0.0 +D;DG;WZ08-H-06;REAL;2021;84.8;e;;0.0 +D;DG;WZ08-H-06;REAL;2022;105.7;e;;0.0 +D;DG;WZ08-H-06;REAL;2023;111.1;p;;0.0 +D;DG;WZ08-H-07;NOMINAL;2020;107.5;e;;0.0 +D;DG;WZ08-H-07;NOMINAL;2021;121.2;e;;0.0 +D;DG;WZ08-H-07;NOMINAL;2022;134.7;e;;0.0 +D;DG;WZ08-H-07;NOMINAL;2023;136.2;p;;0.0 +D;DG;WZ08-H-07;REAL;2020;101.5;e;;0.0 +D;DG;WZ08-H-07;REAL;2021;108.2;e;;0.0 +D;DG;WZ08-H-07;REAL;2022;114.9;e;;0.0 +D;DG;WZ08-H-07;REAL;2023;116.4;p;;0.0 D;DG;WZ08-H;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-H;NOMINAL;2016;101.2;e;;0.0 D;DG;WZ08-H;NOMINAL;2017;108.1;e;;0.0 D;DG;WZ08-H;NOMINAL;2018;110.7;e;;0.0 D;DG;WZ08-H;NOMINAL;2019;113.4;e;;0.0 -D;DG;WZ08-H;NOMINAL;2020;102.2;e;;0.0 -D;DG;WZ08-H;NOMINAL;2021;123.4;p;;0.0 -D;DG;WZ08-H;NOMINAL;2022;145.3;p;;0.0 +D;DG;WZ08-H;NOMINAL;2020;102.1;e;;0.0 +D;DG;WZ08-H;NOMINAL;2021;123.1;e;;0.0 +D;DG;WZ08-H;NOMINAL;2022;144.5;e;;0.0 +D;DG;WZ08-H;NOMINAL;2023;135.0;p;;0.0 D;DG;WZ08-H;REAL;2015;100.0;e;;0.0 D;DG;WZ08-H;REAL;2016;103.2;e;;0.0 D;DG;WZ08-H;REAL;2017;106.4;e;;0.0 D;DG;WZ08-H;REAL;2018;107.6;e;;0.0 D;DG;WZ08-H;REAL;2019;109.4;e;;0.0 -D;DG;WZ08-H;REAL;2020;97.4;e;;0.0 -D;DG;WZ08-H;REAL;2021;102.7;p;;0.0 -D;DG;WZ08-H;REAL;2022;110.4;p;;0.0 +D;DG;WZ08-H;REAL;2020;97.3;e;;0.0 +D;DG;WZ08-H;REAL;2021;102.6;e;;0.0 +D;DG;WZ08-H;REAL;2022;110.4;e;;0.0 +D;DG;WZ08-H;REAL;2023;114.9;p;;0.0 D;DG;WZ08-I;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-I;NOMINAL;2016;104.1;e;;0.0 D;DG;WZ08-I;NOMINAL;2017;108.7;e;;0.0 D;DG;WZ08-I;NOMINAL;2018;114.2;e;;0.0 D;DG;WZ08-I;NOMINAL;2019;119.2;e;;0.0 -D;DG;WZ08-I;NOMINAL;2020;76.1;e;;0.0 -D;DG;WZ08-I;NOMINAL;2021;80.4;p;;0.0 -D;DG;WZ08-I;NOMINAL;2022;124.8;p;;0.0 +D;DG;WZ08-I;NOMINAL;2020;75.7;e;;0.0 +D;DG;WZ08-I;NOMINAL;2021;81.3;e;;0.0 +D;DG;WZ08-I;NOMINAL;2022;125.1;e;;0.0 +D;DG;WZ08-I;NOMINAL;2023;135.9;p;;0.0 D;DG;WZ08-I;REAL;2015;100.0;e;;0.0 D;DG;WZ08-I;REAL;2016;101.9;e;;0.0 D;DG;WZ08-I;REAL;2017;104.2;e;;0.0 D;DG;WZ08-I;REAL;2018;107.2;e;;0.0 D;DG;WZ08-I;REAL;2019;109.3;e;;0.0 -D;DG;WZ08-I;REAL;2020;67.4;e;;0.0 -D;DG;WZ08-I;REAL;2021;69.2;p;;0.0 -D;DG;WZ08-I;REAL;2022;100.4;p;;0.0 +D;DG;WZ08-I;REAL;2020;66.9;e;;0.0 +D;DG;WZ08-I;REAL;2021;70.1;e;;0.0 +D;DG;WZ08-I;REAL;2022;100.7;e;;0.0 +D;DG;WZ08-I;REAL;2023;100.0;p;;0.0 D;DG;WZ08-J;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-J;NOMINAL;2016;110.3;e;;0.0 D;DG;WZ08-J;NOMINAL;2017;106.0;e;;0.0 D;DG;WZ08-J;NOMINAL;2018;111.4;e;;0.0 D;DG;WZ08-J;NOMINAL;2019;112.2;e;;0.0 D;DG;WZ08-J;NOMINAL;2020;111.9;e;;0.0 -D;DG;WZ08-J;NOMINAL;2021;119.3;p;;0.0 -D;DG;WZ08-J;NOMINAL;2022;130.3;p;;0.0 +D;DG;WZ08-J;NOMINAL;2021;119.3;e;;0.0 +D;DG;WZ08-J;NOMINAL;2022;130.3;e;;0.0 +D;DG;WZ08-J;NOMINAL;2023;137.3;p;;0.0 D;DG;WZ08-J;REAL;2015;100.0;e;;0.0 D;DG;WZ08-J;REAL;2016;110.5;e;;0.0 D;DG;WZ08-J;REAL;2017;106.0;e;;0.0 D;DG;WZ08-J;REAL;2018;110.7;e;;0.0 D;DG;WZ08-J;REAL;2019;110.5;e;;0.0 D;DG;WZ08-J;REAL;2020;109.6;e;;0.0 -D;DG;WZ08-J;REAL;2021;115.5;p;;0.0 -D;DG;WZ08-J;REAL;2022;124.0;p;;0.0 +D;DG;WZ08-J;REAL;2021;115.5;e;;0.0 +D;DG;WZ08-J;REAL;2022;124.1;e;;0.0 +D;DG;WZ08-J;REAL;2023;127.7;p;;0.0 D;DG;WZ08-L;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-L;NOMINAL;2016;107.2;e;;0.0 D;DG;WZ08-L;NOMINAL;2017;105.8;e;;0.0 D;DG;WZ08-L;NOMINAL;2018;108.4;e;;0.0 D;DG;WZ08-L;NOMINAL;2019;111.7;e;;0.0 D;DG;WZ08-L;NOMINAL;2020;82.5;e;;0.0 -D;DG;WZ08-L;NOMINAL;2021;92.3;p;;0.0 -D;DG;WZ08-L;NOMINAL;2022;97.7;p;;0.0 +D;DG;WZ08-L;NOMINAL;2021;92.3;e;;0.0 +D;DG;WZ08-L;NOMINAL;2022;97.7;e;;0.0 +D;DG;WZ08-L;NOMINAL;2023;97.9;p;;0.0 D;DG;WZ08-L;REAL;2015;100.0;e;;0.0 D;DG;WZ08-L;REAL;2016;106.0;e;;0.0 D;DG;WZ08-L;REAL;2017;103.2;e;;0.0 D;DG;WZ08-L;REAL;2018;104.2;e;;0.0 D;DG;WZ08-L;REAL;2019;105.8;e;;0.0 D;DG;WZ08-L;REAL;2020;77.1;e;;0.0 -D;DG;WZ08-L;REAL;2021;85.1;p;;0.0 -D;DG;WZ08-L;REAL;2022;88.5;p;;0.0 +D;DG;WZ08-L;REAL;2021;85.1;e;;0.0 +D;DG;WZ08-L;REAL;2022;88.5;e;;0.0 +D;DG;WZ08-L;REAL;2023;87.2;p;;0.0 D;DG;WZ08-M;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-M;NOMINAL;2016;104.1;e;;0.0 D;DG;WZ08-M;NOMINAL;2017;106.6;e;;0.0 D;DG;WZ08-M;NOMINAL;2018;109.3;e;;0.0 D;DG;WZ08-M;NOMINAL;2019;113.7;e;;0.0 D;DG;WZ08-M;NOMINAL;2020;113.2;e;;0.0 -D;DG;WZ08-M;NOMINAL;2021;121.0;p;;0.0 -D;DG;WZ08-M;NOMINAL;2022;133.5;p;;0.0 +D;DG;WZ08-M;NOMINAL;2021;121.0;e;;0.0 +D;DG;WZ08-M;NOMINAL;2022;133.4;e;;0.0 +D;DG;WZ08-M;NOMINAL;2023;140.3;p;;0.0 D;DG;WZ08-M;REAL;2015;100.0;e;;0.0 D;DG;WZ08-M;REAL;2016;103.0;e;;0.0 D;DG;WZ08-M;REAL;2017;104.2;e;;0.0 D;DG;WZ08-M;REAL;2018;105.2;e;;0.0 D;DG;WZ08-M;REAL;2019;107.8;e;;0.0 D;DG;WZ08-M;REAL;2020;106.1;e;;0.0 -D;DG;WZ08-M;REAL;2021;110.0;p;;0.0 -D;DG;WZ08-M;REAL;2022;117.2;p;;0.0 +D;DG;WZ08-M;REAL;2021;110.0;e;;0.0 +D;DG;WZ08-M;REAL;2022;117.2;e;;0.0 +D;DG;WZ08-M;REAL;2023;118.6;p;;0.0 D;DG;WZ08-N;NOMINAL;2015;100.0;e;;0.0 D;DG;WZ08-N;NOMINAL;2016;106.4;e;;0.0 D;DG;WZ08-N;NOMINAL;2017;112.0;e;;0.0 D;DG;WZ08-N;NOMINAL;2018;116.6;e;;0.0 D;DG;WZ08-N;NOMINAL;2019;118.8;e;;0.0 D;DG;WZ08-N;NOMINAL;2020;101.7;e;;0.0 -D;DG;WZ08-N;NOMINAL;2021;120.1;p;;0.0 -D;DG;WZ08-N;NOMINAL;2022;140.7;p;;0.0 +D;DG;WZ08-N;NOMINAL;2021;120.1;e;;0.0 +D;DG;WZ08-N;NOMINAL;2022;140.7;e;;0.0 +D;DG;WZ08-N;NOMINAL;2023;152.1;p;;0.0 D;DG;WZ08-N;REAL;2015;100.0;e;;0.0 D;DG;WZ08-N;REAL;2016;105.0;e;;0.0 D;DG;WZ08-N;REAL;2017;108.4;e;;0.0 D;DG;WZ08-N;REAL;2018;110.6;e;;0.0 D;DG;WZ08-N;REAL;2019;110.8;e;;0.0 D;DG;WZ08-N;REAL;2020;94.1;e;;0.0 -D;DG;WZ08-N;REAL;2021;107.2;p;;0.0 -D;DG;WZ08-N;REAL;2022;120.0;p;;0.0 +D;DG;WZ08-N;REAL;2021;107.2;e;;0.0 +D;DG;WZ08-N;REAL;2022;120.0;e;;0.0 +D;DG;WZ08-N;REAL;2023;122.2;p;;0.0 diff --git a/tests/testthat/find1/api/find/find-c24582.json b/tests/testthat/find1/api/find/find-c24582.json index 89c8fe7..45f58c4 100644 --- a/tests/testthat/find1/api/find/find-c24582.json +++ b/tests/testthat/find1/api/find/find-c24582.json @@ -19,344 +19,376 @@ "Cubes": [ { "Code": "12211BJ424", - "Content": "Mikrozensus, Erwerbstaeatige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:50h", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Berufsbereiche (KB2010), 1-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "11.04.2024 15:23:28h", "Information": "false" }, { "Code": "12211BJ425", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:47h", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Berufsbereiche (KB2010), 1-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "11.04.2024 15:23:06h", "Information": "false" }, { "Code": "12211BJ426", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:37h", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "11.04.2024 15:23:35h", "Information": "false" }, { "Code": "12211BJ427", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:53h", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "11.04.2024 15:23:59h", "Information": "false" }, { "Code": "21331BS002", - "Content": "Statistik der Gasth?rer, Gasth?rer, Deutschland insgesamt, F?chergruppen, Semester", - "State": "vollst?ndig mit Werten", - "Time": "WS 1994/95-WS 2021/22", - "LatestUpdate": "24.05.2022 08:01:01h", + "Content": "Statistik der Gasthörer, Gasthörer, Deutschland insgesamt, Fächergruppen, Semester", + "State": "vollständig mit Werten", + "Time": "WS 1994/95-WS 2023/24", + "LatestUpdate": "05.06.2024 08:00:23h", "Information": "false" }, { "Code": "21341BJ002", - "Content": "Statistik des Hochschulpersonals, Hauptberufl. wissenschaftl. u. k?nstler. Personal, Deutschland insgesamt, Geschlecht, Lehr- und Forschungsbereiche, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1997-2021", - "LatestUpdate": "22.09.2022 08:00:06h", + "Content": "Statistik des Hochschulpersonals, Hauptberufl. wissenschaftl. u. künstler. Personal, Deutschland insgesamt, Geschlecht, Lehr- und Forschungsbereiche, Jahr", + "State": "vollständig mit Werten", + "Time": "1997-2022", + "LatestUpdate": "06.10.2023 08:00:06h", "Information": "false" }, { "Code": "21341BJ003", - "Content": "Statistik des Hochschulpersonals, Professoren, Deutschland insgesamt, Geschlecht, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1997-2021", - "LatestUpdate": "22.09.2022 08:00:08h", + "Content": "Statistik des Hochschulpersonals, Professoren, Deutschland insgesamt, Geschlecht, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "1997-2022", + "LatestUpdate": "06.10.2023 08:00:10h", "Information": "false" }, { "Code": "21351BJ001", - "Content": "Statistik der Habilitationen, Habilitationen, Deutschland insgesamt, F?chergruppen, Geschlecht, Nationalit?t, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:41h", + "Content": "Statistik der Habilitationen, Habilitationen, Deutschland insgesamt, Fächergruppen, Geschlecht, Nationalität, Jahr", + "State": "vollständig mit Werten", + "Time": "1992-2023", + "LatestUpdate": "02.07.2024 08:00:09h", "Information": "false" }, { "Code": "21351BJ003", - "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:38h", + "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "1992-2023", + "LatestUpdate": "02.07.2024 08:00:06h", "Information": "false" }, { "Code": "21351BJ005", - "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, F?chergruppen, Geschlecht, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:43h", + "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, Fächergruppen, Geschlecht, Jahr", + "State": "vollständig mit Werten", + "Time": "1992-2023", + "LatestUpdate": "02.07.2024 08:00:03h", "Information": "false" }, { "Code": "21352BJ011", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, F?chergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:20h", + "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Fächergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:04:59h", "Information": "false" }, { "Code": "21352BJ012", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, F?chergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:17h", + "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, Fächergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:04:56h", "Information": "false" }, { "Code": "21352BJ013", - "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:18h", + "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, Fächergruppen, Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:04:37h", "Information": "false" }, { "Code": "21352BJ014", - "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, Geschlecht, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:16h", + "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, Geschlecht, Fächergruppen, Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:04:46h", "Information": "false" }, { "Code": "21352BJ015", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Nationalit?t, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:18:28h", + "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Nationalität, Fächergruppen, Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:04:43h", "Information": "false" }, { "Code": "21352BJ016", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, Nationalit?t, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:18:25h", + "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, Nationalität, Fächergruppen, Stichtag", + "State": "vollständig mit Werten", + "Time": "01.12.2019-01.12.2022", + "LatestUpdate": "17.08.2023 14:05:02h", "Information": "false" }, { "Code": "21371BJ003", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:13h", + "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2022", + "LatestUpdate": "19.03.2024 08:00:47h", "Information": "false" }, { "Code": "21371BJ004", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, Hochschulart, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:12h", + "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, Hochschulart, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2022", + "LatestUpdate": "19.03.2024 08:00:44h", "Information": "false" }, { "Code": "21371LJ003", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesl?nder, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:14h", + "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesländer, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2022", + "LatestUpdate": "19.03.2024 08:00:38h", "Information": "false" }, { "Code": "21371LJ004", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesl?nder, Hochschulart, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:16h", + "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesländer, Hochschulart, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2022", + "LatestUpdate": "19.03.2024 08:00:54h", "Information": "false" }, { "Code": "21381BJ102", - "Content": "Hochschulstatistische Kennzahlen, Laufende Ausgaben der Hochschulen je Studierenden, Laufende Ausgaben d. Hochschulen je Wiss. Personal, Laufende Ausgaben der Hochschulen je Professor, Drittmittel der Hochschulen je Wiss. Personal, Drittmittel der Hochschulen je Professor, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2011-2020", - "LatestUpdate": "20.09.2022 08:00:51h", + "Content": "Hochschulstatistische Kennzahlen, Laufende Ausgaben der Hochschulen je Studierenden, Laufende Ausgaben d. Hochschulen je Wiss. Personal, Laufende Ausgaben der Hochschulen je Professor, Drittmittel der Hochschulen je Wiss. Personal, Drittmittel der Hochschulen je Professor, Deutschland insgesamt, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2011-2021", + "LatestUpdate": "12.10.2023 08:00:03h", "Information": "false" }, { "Code": "21431BJ009", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:24h", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "07.05.2024 08:01:35h", "Information": "false" }, { "Code": "21431BJ010", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:28h", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "07.05.2024 08:03:24h", "Information": "false" }, { "Code": "21431BJ011", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Nationalit?t, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:26h", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Nationalität, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "07.05.2024 08:03:21h", "Information": "false" }, { "Code": "21431BJ012", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, Nationalit?t, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:00:22h", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, Nationalität, Fächergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "07.05.2024 08:02:08h", "Information": "false" }, { "Code": "21811BJ007", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:05h", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr., Interne Ausgaben für Forschung und Entwicklung, Personal für FuE (Vollzeitäquivalente), Deutschland insgesamt, Wissenschaftszweige, Jahr", + "State": "vollständig mit Werten", + "Time": "2019-2022", + "LatestUpdate": "08.03.2024 08:00:17h", "Information": "false" }, { "Code": "21811BJ008", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Einrichtungsgruppe, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:02h", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr., Interne Ausgaben für Forschung und Entwicklung, Personal für FuE (Vollzeitäquivalente), Deutschland insgesamt, Einrichtungsgruppe, Wissenschaftszweige, Jahr", + "State": "vollständig mit Werten", + "Time": "2019-2022", + "LatestUpdate": "08.03.2024 08:00:14h", "Information": "false" }, { "Code": "21811BJ009", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Einrichtungsart, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:17h", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr., Interne Ausgaben für Forschung und Entwicklung, Personal für FuE (Vollzeitäquivalente), Deutschland insgesamt, Einrichtungsart, Wissenschaftszweige, Jahr", + "State": "vollständig mit Werten", + "Time": "2019-2022", + "LatestUpdate": "08.03.2024 08:00:08h", "Information": "false" }, { "Code": "21811BJ034", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Wissenschaftszweige, Personalgruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:05:13h", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr., Personal für FuE (Vollzeitäquivalente), Deutschland insgesamt, Wissenschaftszweige, Personalgruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2019-2022", + "LatestUpdate": "08.03.2024 08:03:17h", "Information": "false" }, { "Code": "21811LJ003", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Bundesl?nder und Ausland, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:06:15h", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr., Interne Ausgaben für Forschung und Entwicklung, Bundesländer und Ausland, Wissenschaftszweige, Jahr", + "State": "vollständig mit Werten", + "Time": "2019-2022", + "LatestUpdate": "08.03.2024 08:04:10h", "Information": "false" }, { "Code": "51000BJ160", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2008-2022", - "LatestUpdate": "20.03.2023 18:00:31h", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:09:56h", "Information": "false" }, { "Code": "51000BJ161", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2008-2022", - "LatestUpdate": "20.03.2023 18:15:53h", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:22:32h", "Information": "false" }, { "Code": "51000BJ180", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2022", - "LatestUpdate": "20.03.2023 18:01:33h", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2023", + "LatestUpdate": "17.06.2024 18:09:29h", "Information": "false" }, { "Code": "51000BJ181", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2022", - "LatestUpdate": "20.03.2023 18:17:44h", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2023", + "LatestUpdate": "17.06.2024 18:24:36h", "Information": "false" }, { "Code": "51000BM160", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2008-Januar 2023", - "LatestUpdate": "20.03.2023 18:12:08h", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 18:31:57h", "Information": "false" }, { "Code": "51000BM161", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2008-Januar 2023", - "LatestUpdate": "20.03.2023 18:50:12h", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 20:38:26h", "Information": "false" }, { "Code": "51000BM180", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2006-Januar 2023", - "LatestUpdate": "20.03.2023 18:13:34h", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2006-April 2024", + "LatestUpdate": "17.06.2024 18:34:13h", "Information": "false" }, { "Code": "51000BM181", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2006-Januar 2023", - "LatestUpdate": "20.03.2023 19:37:45h", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2006-April 2024", + "LatestUpdate": "17.06.2024 21:33:17h", "Information": "false" }, { "Code": "62361BJ009", "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Berufsgruppen (KB2010), 3-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:06h", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:00:34h", "Information": "false" }, { "Code": "62361BJ010", "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Berufsgattungen (KB2010), 5-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:06h", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:01:17h", "Information": "false" }, { "Code": "62361BJ012", "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Geschlecht, Berufsgruppen (KB2010), 3-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:07h", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:00:59h", "Information": "false" }, { "Code": "62361BJ013", "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Geschlecht, Berufsgattungen (KB2010), 5-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:07h", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:00:53h", + "Information": "false" + }, + { + "Code": "62361BJ015", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Berufsgruppen (KB2010), 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:58h", + "Information": "false" + }, + { + "Code": "62361BJ016", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Berufsgattungen (KB2010), 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:39h", + "Information": "false" + }, + { + "Code": "62361BJ018", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Geschlecht, Berufsgruppen (KB2010), 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:55h", + "Information": "false" + }, + { + "Code": "62361BJ019", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Geschlecht, Berufsgattungen (KB2010), 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:51h", "Information": "false" }, { "Code": "71141BJ006", - "Content": "Rechnungsergebnisse d.?ffentlichen Gesamthaushalts, Nettoausgaben, Personalausgaben, Bauma?nahmen, Deutschland insgesamt, K?rperschaftsgruppen, Aufgabenbereiche der ?ffentlichen Haushalte, Jahr", - "State": "vollst?ndig mit Werten", + "Content": "Rechnungsergebnisse d.öffentlichen Gesamthaushalts, Nettoausgaben, Personalausgaben, Baumaßnahmen, Deutschland insgesamt, Körperschaftsgruppen, Aufgabenbereiche der öffentlichen Haushalte, Jahr", + "State": "vollständig mit Werten", "Time": "1992-2011", "LatestUpdate": "26.02.2014 15:37:23h", "Information": "false" @@ -366,12 +398,12 @@ { "Code": "12211", "Content": "Mikrozensus", - "Cubes": "483", + "Cubes": "487", "Information": "true" }, { "Code": "21331", - "Content": "Statistik der Gasth?rer", + "Content": "Statistik der Gasthörer", "Cubes": "2", "Information": "true" }, @@ -407,31 +439,31 @@ }, { "Code": "21431", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz", "Cubes": "37", "Information": "true" }, { "Code": "21811", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr.", + "Content": "Ausgaben, Einnahmen, Personal öff. Forschungseinr.", "Cubes": "47", "Information": "true" }, { "Code": "51000", - "Content": "Au?enhandel", + "Content": "Außenhandel", "Cubes": "79", "Information": "true" }, { "Code": "62361", "Content": "Verdiensterhebung", - "Cubes": "103", + "Cubes": "152", "Information": "true" }, { "Code": "71141", - "Content": "Rechnungsergebnisse d.?ffentlichen Gesamthaushalts", + "Content": "Rechnungsergebnisse d.öffentlichen Gesamthaushalts", "Cubes": "10", "Information": "true" } @@ -439,147 +471,147 @@ "Tables": [ { "Code": "12211-0009", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Deutschland,\nJahre, Geschlecht, Stellung im Beruf, Berufe", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Deutschland,\nJahre, Geschlecht, Stellung im Beruf, Berufe", "Time": "" }, { "Code": "21331-0002", - "Content": "Gasth?rer: Deutschland, Semester, F?chergruppen", + "Content": "Gasthörer: Deutschland, Semester, Fächergruppen", "Time": "" }, { "Code": "21341-0002", - "Content": "Hauptberufliches wissenschaftliches und k?nstlerisches\nPersonal an Hochschulen: Deutschland, Jahre, Lehr- und\nForschungsbereiche nach F?chergruppen, Geschlecht", + "Content": "Hauptberufliches wissenschaftliches und künstlerisches\nPersonal an Hochschulen: Deutschland, Jahre, Lehr- und\nForschungsbereiche nach Fächergruppen, Geschlecht", "Time": "" }, { "Code": "21341-0003", - "Content": "Professoren: Deutschland, Jahre, F?chergruppen, Geschlecht", + "Content": "Professoren: Deutschland, Jahre, Fächergruppen, Geschlecht", "Time": "" }, { "Code": "21351-0001", - "Content": "Habilitationen: Deutschland, Jahre, F?chergruppen,\nNationalit?t, Geschlecht", + "Content": "Habilitationen: Deutschland, Jahre, Fächergruppen,\nNationalität, Geschlecht", "Time": "" }, { "Code": "21351-0002", - "Content": "Durchschnittsalter der habilitierten Personen: Deutschland,\nJahre, F?chergruppen, Geschlecht", + "Content": "Durchschnittsalter der habilitierten Personen: Deutschland,\nJahre, Fächergruppen, Geschlecht", "Time": "" }, { "Code": "21352-0002", - "Content": "Promovierende: Deutschland, Stichtag, Geschlecht,\nAltersgruppen, F?chergruppen", + "Content": "Promovierende: Deutschland, Stichtag, Geschlecht,\nAltersgruppen, Fächergruppen", "Time": "" }, { "Code": "21352-0003", - "Content": "Promovierende: Deutschland, Stichtag, Nationalit?t,\nGeschlecht, F?chergruppen und Studienbereiche", + "Content": "Promovierende: Deutschland, Stichtag, Nationalität,\nGeschlecht, Fächergruppen und Studienbereiche", "Time": "" }, { "Code": "21352-0004", - "Content": "Durchschnittsalter der Promovierenden: Deutschland,\nStichtag, Geschlecht, F?chergruppen", + "Content": "Durchschnittsalter der Promovierenden: Deutschland,\nStichtag, Geschlecht, Fächergruppen", "Time": "" }, { "Code": "21371-0001", - "Content": "Ausgaben der Hochschulen: Deutschland, Jahre, Hochschulart,\nF?chergruppen", + "Content": "Ausgaben der Hochschulen: Deutschland, Jahre, Hochschulart,\nFächergruppen", "Time": "" }, { "Code": "21371-0002", - "Content": "Ausgaben der Hochschulen: Bundesl?nder, Jahre, Hochschulart,\nF?chergruppen", + "Content": "Ausgaben der Hochschulen: Bundesländer, Jahre, Hochschulart,\nFächergruppen", "Time": "" }, { "Code": "21381-0005", - "Content": "Laufende Ausgaben der Hochschulen, Drittmittel der\nHochschulen: Deutschland, Jahre, F?chergruppen", + "Content": "Laufende Ausgaben der Hochschulen, Drittmittel der\nHochschulen: Deutschland, Jahre, Fächergruppen", "Time": "" }, { "Code": "21431-0004", - "Content": "Stipendiaten: Deutschland, Jahre, Nationalit?t, Geschlecht,\nF?chergruppen", + "Content": "Stipendiaten: Deutschland, Jahre, Nationalität, Geschlecht,\nFächergruppen", "Time": "" }, { "Code": "21811-0003", - "Content": "Interne Ausgaben f?r Forschung und Entwicklung: Deutschland,\nJahre, Einrichtungsart, Wissenschaftszweige", + "Content": "Interne Ausgaben für Forschung und Entwicklung: Deutschland,\nJahre, Einrichtungsart, Wissenschaftszweige", "Time": "" }, { "Code": "21811-0005", - "Content": "Personal f?r Forschung und Entwicklung (Vollzeit?quivalente): Deutschland, Jahre, Einrichtungsart, Wissenschaftszweige", + "Content": "Personal für Forschung und Entwicklung (Vollzeitäquivalente): Deutschland, Jahre, Einrichtungsart, Wissenschaftszweige", "Time": "" }, { "Code": "21811-0007", - "Content": "Personal f?r Forschung und Entwicklung (Vollzeit?quivalente): Deutschland, Jahre, Personalgruppen, Wissenschaftszweige", + "Content": "Personal für Forschung und Entwicklung (Vollzeitäquivalente): Deutschland, Jahre, Personalgruppen, Wissenschaftszweige", "Time": "" }, { "Code": "21811-0022", - "Content": "Interne Ausgaben f?r Forschung und Entwicklung: Bundesl?nder\nund Ausland, Jahre, Wissenschaftszweige", + "Content": "Interne Ausgaben für Forschung und Entwicklung: Bundesländer\nund Ausland, Jahre, Wissenschaftszweige", "Time": "" }, { "Code": "51000-0005", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWarensystematik", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWarensystematik", "Time": "" }, { "Code": "51000-0006", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWarensystematik", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWarensystematik", "Time": "" }, { "Code": "51000-0009", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (4-/6-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (4-/6-Steller)", "Time": "" }, { "Code": "51000-0010", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWare (4-/6-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWare (4-/6-Steller), Länder", "Time": "" }, { "Code": "51000-0011", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate, Land,\nWarenverzeichnis (4-/6-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate, Land,\nWarenverzeichnis (4-/6-Steller)", "Time": "" }, { "Code": "51000-0012", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWare (4-/6-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWare (4-/6-Steller), Länder", "Time": "" }, { "Code": "51000-0013", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0014", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0015", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0016", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWare (8-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWare (8-Steller), Länder", "Time": "" }, { "Code": "51000-0017", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate, Land,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate, Land,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0018", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWare (8-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWare (8-Steller), Länder", "Time": "" }, { @@ -587,9 +619,14 @@ "Content": "Bruttostundenverdienste, Bruttomonatsverdienste: Deutschland, Stichmonat, Geschlecht, Berufe", "Time": "" }, + { + "Code": "62361-0034", + "Content": "Bruttojahresverdienste: Deutschland, Jahre, Geschlecht, Berufe", + "Time": "" + }, { "Code": "71141-0004", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Bauma?nahmen):\nDeutschland, Jahre, K?rperschaftsgruppen, Aufgabenbereiche", + "Content": "Rechnungsergebnisse des öffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Baumaßnahmen):\nDeutschland, Jahre, Körperschaftsgruppen, Aufgabenbereiche", "Time": "" } ], @@ -597,7 +634,7 @@ "Variables": [ { "Code": "AFGBE3", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", + "Content": "Aufgabenbereiche der öffentlichen Haushalte", "Type": "sachlich", "Values": "22", "Information": "false" @@ -611,49 +648,49 @@ }, { "Code": "BILFG1", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "10", "Information": "false" }, { "Code": "BILFG2", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "10", "Information": "false" }, { "Code": "BILFG3", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "11", "Information": "false" }, { "Code": "BILFG4", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "9", "Information": "false" }, { "Code": "BILFG5", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "8", "Information": "false" }, { "Code": "BILFG6", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "12", "Information": "false" }, { "Code": "BILFG7", - "Content": "F?chergruppen", + "Content": "Fächergruppen", "Type": "sachlich", "Values": "9", "Information": "false" @@ -681,16 +718,16 @@ }, { "Code": "WAM6", - "Content": "Warenverzeichnis Au?enhandelsstatistik (6-Steller)", + "Content": "Warenverzeichnis Außenhandelsstatistik (6-Steller)", "Type": "sachlich", "Values": "6435", "Information": "true" }, { "Code": "WAM8", - "Content": "Warenverzeichnis Au?enhandelsstatistik (8-Steller)", + "Content": "Warenverzeichnis Außenhandelsstatistik (8-Steller)", "Type": "sachlich", - "Values": "14244", + "Values": "14270", "Information": "true" }, { @@ -701,5 +738,5 @@ "Information": "false" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/find2_fake/api/find/find-ef22fd.json b/tests/testthat/find2_fake/api/find/find-ef22fd.json index b0a6c4e..0da09bb 100644 --- a/tests/testthat/find2_fake/api/find/find-ef22fd.json +++ b/tests/testthat/find2_fake/api/find/find-ef22fd.json @@ -4,672 +4,547 @@ "Method": "find" }, "Status": { - "Code": 100, + "Code": 999, "Content": "test error message", "Type": "Information" }, "Parameter": { "username": "********************", "password": "********************", - "term": "forst", + "term": "bus", "category": "Alle", "pagelength": "100", "language": "de" }, "Cubes": [ { - "Code": "12211BJ424", - "Content": "Mikrozensus, Erwerbstaetige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:50h", + "Code": "12251B4005", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Benutztes Verkehrsmittel f.d. Hinweg z. Arbeitsst., Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "17.11.2022 12:12:42h", "Information": "false" }, { - "Code": "12211BJ425", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:47h", + "Code": "12251B4006", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Benutztes Verkehrsmittel f.d. Hinweg z. Arbeitsst., Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "17.11.2022 12:12:59h", "Information": "false" }, { - "Code": "12211BJ426", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:37h", + "Code": "12251B4007", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Stellung im Beruf, Benutztes Verkehrsmittel f.d. Hinweg z. Arbeitsst., Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "17.11.2022 12:13:19h", "Information": "false" }, { - "Code": "12211BJ427", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Stellung im Beruf, Berufsbereiche (KB2010), 1-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "30.01.2023 16:01:53h", + "Code": "12251B4008", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Deutschland insgesamt, Geschlecht, Stellung im Beruf, Benutztes Verkehrsmittel f.d. Hinweg z. Arbeitsst., Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "17.11.2022 12:13:40h", "Information": "false" }, { - "Code": "21331BS002", - "Content": "Statistik der Gasth?rer, Gasth?rer, Deutschland insgesamt, F?chergruppen, Semester", - "State": "vollst?ndig mit Werten", - "Time": "WS 1994/95-WS 2021/22", - "LatestUpdate": "24.05.2022 08:01:01h", + "Code": "45413BJ008", + "Content": "Statistik über die touristische Nachfrage, Reisen, Deutschland insgesamt, Verkehrsmittel, Jahr", + "State": "vollständig mit Werten", + "Time": "2012-2023", + "LatestUpdate": "03.07.2024 08:02:18h", "Information": "false" }, { - "Code": "21341BJ002", - "Content": "Statistik des Hochschulpersonals, Hauptberufl. wissenschaftl. u. k?nstler. Personal, Deutschland insgesamt, Geschlecht, Lehr- und Forschungsbereiche, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1997-2021", - "LatestUpdate": "22.09.2022 08:00:06h", + "Code": "46181BJ001", + "Content": "Personenverkehr mit Bussen und Bahnen, Beförderte Personen, Beförderungsleistung, Deutschland insgesamt, Verkehrsart, Hauptverkehrsverbindung, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:17h", "Information": "false" }, { - "Code": "21341BJ003", - "Content": "Statistik des Hochschulpersonals, Professoren, Deutschland insgesamt, Geschlecht, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1997-2021", - "LatestUpdate": "22.09.2022 08:00:08h", + "Code": "46181BJ002", + "Content": "Personenverkehr mit Bussen und Bahnen, Unternehmen, Beförderte Personen, Beförderungsleistung, Fahrleistung, Beförderungsangebot, Deutschland insgesamt, Tätigkeit der Unternehmen im Liniennahverkehr, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:27h", "Information": "false" }, { - "Code": "21351BJ001", - "Content": "Statistik der Habilitationen, Habilitationen, Deutschland insgesamt, F?chergruppen, Geschlecht, Nationalit?t, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:41h", + "Code": "46181BJ003", + "Content": "Personenverkehr mit Bussen und Bahnen, Fahrleistung, Beförderungsangebot, Deutschland insgesamt, Verkehrsart, Einsatzgebiet, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:35h", "Information": "false" }, { - "Code": "21351BJ003", - "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:38h", + "Code": "46181BV001", + "Content": "Personenverkehr mit Bussen und Bahnen, Unternehmen, Beförderte Personen, Personenkilometer, Deutschland insgesamt, Verkehrsart (Liniennah- und Linienfernverkehr), Quartale, Jahr", + "State": "vollständig mit Werten", + "Time": "1. Quartal 2004-1. Quartal 2024", + "LatestUpdate": "27.06.2024 08:08:11h", "Information": "false" }, { - "Code": "21351BJ005", - "Content": "Statistik der Habilitationen, Durchschnittsalter der habilitierten Personen, Deutschland insgesamt, F?chergruppen, Geschlecht, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2021", - "LatestUpdate": "05.07.2022 08:00:43h", + "Code": "46181L5001", + "Content": "Personenverkehr mit Bussen und Bahnen, Linienlängen im Nahverkehr, Linien im Nahverkehr, Bundesländer, Verkehrsart, Stichtag", + "State": "vollständig mit Werten", + "Time": "31.12.2004-31.12.2019", + "LatestUpdate": "05.08.2022 13:05:31h", "Information": "false" }, { - "Code": "21352BJ011", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, F?chergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:20h", + "Code": "46181L5002", + "Content": "Personenverkehr mit Bussen und Bahnen, Fahrzeuge, Sitzplätze, Stehplätze, Bundesländer, Verkehrsart, Stichtag", + "State": "vollständig mit Werten", + "Time": "31.12.2004-31.12.2019", + "LatestUpdate": "05.08.2022 13:05:28h", "Information": "false" }, { - "Code": "21352BJ012", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, F?chergruppen, Altersgruppen (u24-40m, unbekannt), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:17h", + "Code": "46181L5003", + "Content": "Personenverkehr mit Bussen und Bahnen, Beschäftigte, Bundesländer, Einsatzart, Stichtag", + "State": "vollständig mit Werten", + "Time": "31.12.2004-31.12.2019", + "LatestUpdate": "05.08.2022 13:05:30h", "Information": "false" }, { - "Code": "21352BJ013", - "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:18h", + "Code": "46181LJ001", + "Content": "Personenverkehr mit Bussen und Bahnen, Unternehmen, Beförderte Personen, Beförderungsleistung, Fahrleistung, Beförderungsangebot, Bundesländer, Verkehrsart, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:31h", "Information": "false" }, { - "Code": "21352BJ014", - "Content": "Statistik der Promovierenden, Promovierende, Durchschnittsalter der Promovierenden, Deutschland insgesamt, Geschlecht, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:17:16h", + "Code": "46181LJ002", + "Content": "Personenverkehr mit Bussen und Bahnen, Unternehmen, Beförderte Personen, Beförderungsleistung, Fahrleistung, Beförderungsangebot, Einnahmen im Liniennahverkehr, Bundesländer, Unternehmensart, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:24h", "Information": "false" }, { - "Code": "21352BJ015", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Nationalit?t, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:18:28h", + "Code": "46181LJ003", + "Content": "Personenverkehr mit Bussen und Bahnen, Beförderungsleistung, Beförderungsleistung von großen Unternehmen, Fahrleistung, Fahrleistung von großen Unternehmen, Bundesländer, Verkehrsart, Jahr", + "State": "vollständig mit Werten", + "Time": "2004-2022", + "LatestUpdate": "29.11.2023 14:33:21h", "Information": "false" }, { - "Code": "21352BJ016", - "Content": "Statistik der Promovierenden, Promovierende, Deutschland insgesamt, Geschlecht, Nationalit?t, F?chergruppen, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "01.12.2019-01.12.2021", - "LatestUpdate": "15.08.2022 13:18:25h", + "Code": "46181LV001", + "Content": "Personenverkehr mit Bussen und Bahnen, Unternehmen, Beförderte Personen, Personenkilometer, Bundesländer, Verkehrsart (Liniennah- und Linienfernverkehr), Quartale, Jahr", + "State": "vollständig mit Werten", + "Time": "1. Quartal 2004-1. Quartal 2024", + "LatestUpdate": "27.06.2024 08:08:15h", "Information": "false" }, { - "Code": "21371BJ003", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:13h", - "Information": "false" - }, - { - "Code": "21371BJ004", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Deutschland insgesamt, Hochschulart, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:12h", - "Information": "false" - }, - { - "Code": "21371LJ003", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesl?nder, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:14h", - "Information": "false" - }, - { - "Code": "21371LJ004", - "Content": "Hochschulfinanzstatistik, Ausgaben der Hochschulen, Bundesl?nder, Hochschulart, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2020", - "LatestUpdate": "22.03.2022 08:00:16h", - "Information": "false" - }, - { - "Code": "21381BJ102", - "Content": "Hochschulstatistische Kennzahlen, Laufende Ausgaben der Hochschulen je Studierenden, Laufende Ausgaben d. Hochschulen je Wiss. Personal, Laufende Ausgaben der Hochschulen je Professor, Drittmittel der Hochschulen je Wiss. Personal, Drittmittel der Hochschulen je Professor, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2011-2020", - "LatestUpdate": "20.09.2022 08:00:51h", - "Information": "false" - }, - { - "Code": "21431BJ009", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:24h", + "Code": "51000BJ160", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:09:56h", "Information": "false" }, { - "Code": "21431BJ010", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:28h", + "Code": "51000BJ161", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:22:32h", "Information": "false" }, { - "Code": "21431BJ011", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Nationalit?t, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:01:26h", + "Code": "51000BJ180", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2023", + "LatestUpdate": "17.06.2024 18:09:29h", "Information": "false" }, { - "Code": "21431BJ012", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz, Stipendiaten, Deutschland insgesamt, Geschlecht, Nationalit?t, F?chergruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2021", - "LatestUpdate": "31.05.2022 08:00:22h", + "Code": "51000BJ181", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2006-2023", + "LatestUpdate": "17.06.2024 18:24:36h", "Information": "false" }, { - "Code": "21811BJ007", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:05h", + "Code": "51000BJ330", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:12:08h", "Information": "false" }, { - "Code": "21811BJ008", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Einrichtungsgruppe, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:02h", + "Code": "51000BJ331", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:13:04h", "Information": "false" }, { - "Code": "21811BJ009", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Einrichtungsart, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:01:17h", + "Code": "51000BJ903", + "Content": "Außenhandel, Ausfuhr: Volumen, Einfuhr: Volumen, Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Ländergruppen, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "13.02.2024 18:42:27h", "Information": "false" }, { - "Code": "21811BJ034", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Personal f?r FuE (Vollzeit?quivalente), Deutschland insgesamt, Wissenschaftszweige, Personalgruppen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:05:13h", + "Code": "51000BM160", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 18:31:57h", "Information": "false" }, { - "Code": "21811LJ003", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr., Interne Ausgaben f?r Forschung und Entwicklung, Bundesl?nder und Ausland, Wissenschaftszweige, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2019-2021", - "LatestUpdate": "08.03.2023 08:06:15h", + "Code": "51000BM161", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (6-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 20:38:26h", "Information": "false" }, { - "Code": "51000BJ160", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2008-2022", - "LatestUpdate": "20.03.2023 18:00:31h", + "Code": "51000BM180", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2006-April 2024", + "LatestUpdate": "17.06.2024 18:34:13h", "Information": "false" }, { - "Code": "51000BJ161", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2008-2022", - "LatestUpdate": "20.03.2023 18:15:53h", + "Code": "51000BM181", + "Content": "Außenhandel, Ausfuhr: Besondere Maßeinheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Maßeinheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Außenhandelsstatistik (8-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2006-April 2024", + "LatestUpdate": "17.06.2024 21:33:17h", "Information": "false" }, { - "Code": "51000BJ180", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2022", - "LatestUpdate": "20.03.2023 18:01:33h", + "Code": "51000BM330", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2001-April 2024", + "LatestUpdate": "17.06.2024 18:42:51h", "Information": "false" }, { - "Code": "51000BJ181", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2006-2022", - "LatestUpdate": "20.03.2023 18:17:44h", + "Code": "51000BM331", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2001-April 2024", + "LatestUpdate": "17.06.2024 18:51:36h", "Information": "false" }, { - "Code": "51000BM160", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2008-Januar 2023", - "LatestUpdate": "20.03.2023 18:12:08h", + "Code": "51000BM903", + "Content": "Außenhandel, Ausfuhr: Volumen, Einfuhr: Volumen, Warengruppen (EGW 2002: 3-Steller), Deutschland insgesamt, Ländergruppen, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 18:00:20h", "Information": "false" }, { - "Code": "51000BM161", - "Content": "Au?enhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (6-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2008-Januar 2023", - "LatestUpdate": "20.03.2023 18:50:12h", + "Code": "51000LJ330", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Einfuhr: Gewicht, Einfuhr: Wert, Warengruppen (EGW 2002: 3-Steller), Bundesländer mit Ausland und Restposition, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:16:20h", "Information": "false" }, { - "Code": "51000BM180", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2006-Januar 2023", - "LatestUpdate": "20.03.2023 18:13:34h", + "Code": "51000LJ331", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Einfuhr: Gewicht, Einfuhr: Wert, Warengruppen (EGW 2002: 3-Steller), Bundesländer mit Ausland und Restposition, Länderverzeichnis für die Außenhandelsstatistik, Jahr", + "State": "vollständig mit Werten", + "Time": "2008-2023", + "LatestUpdate": "17.06.2024 18:29:59h", "Information": "false" }, { - "Code": "51000BM181", - "Content": "Au?enhandel, Ausfuhr: Besondere Ma?einheit, Ausfuhr: Gewicht, Ausfuhr: Wert, Ausfuhr: Wert (US-Dollar), Einfuhr: Besondere Ma?einheit, Einfuhr: Gewicht, Einfuhr: Wert, Einfuhr: Wert (US-Dollar), Warenverzeichnis Au?enhandelsstatistik (8-Steller), Deutschland insgesamt, L?nderverzeichnis f?r die Au?enhandelsstatistik, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2006-Januar 2023", - "LatestUpdate": "20.03.2023 19:37:45h", + "Code": "51000LM330", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Einfuhr: Gewicht, Einfuhr: Wert, Warengruppen (EGW 2002: 3-Steller), Bundesländer mit Ausland und Restposition, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 18:30:47h", "Information": "false" }, { - "Code": "62361BJ009", - "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Berufsgruppen (KB2010), 3-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:06h", + "Code": "51000LM331", + "Content": "Außenhandel, Ausfuhr: Gewicht, Ausfuhr: Wert, Einfuhr: Gewicht, Einfuhr: Wert, Warengruppen (EGW 2002: 3-Steller), Bundesländer mit Ausland und Restposition, Länderverzeichnis für die Außenhandelsstatistik, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2008-April 2024", + "LatestUpdate": "17.06.2024 19:37:22h", "Information": "false" }, { "Code": "62361BJ010", "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Berufsgattungen (KB2010), 5-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:06h", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:01:17h", "Information": "false" }, { - "Code": "62361BJ012", - "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Geschlecht, Berufsgruppen (KB2010), 3-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:07h", + "Code": "62361BJ013", + "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Geschlecht, Berufsgattungen (KB2010), 5-Steller, Stichmonat", + "State": "vollständig mit Werten", + "Time": "04/2022-04/2023", + "LatestUpdate": "18.01.2024 08:00:53h", "Information": "false" }, { - "Code": "62361BJ013", - "Content": "Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne Sonderz., Durchschn. Bruttomonatsverdienste ohne Sonderz., Mittlere Bruttostundenverdienste ohne Sonderz., Mittlere Bruttomonatsverdienste ohne Sonderz., Deutschland insgesamt, Geschlecht, Berufsgattungen (KB2010), 5-Steller, Stichmonat", - "State": "vollst?ndig mit Werten", - "Time": "04/2022", - "LatestUpdate": "23.11.2022 18:07:07h", + "Code": "62361BJ016", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Berufsgattungen (KB2010), 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:39h", "Information": "false" }, { - "Code": "71141BJ006", - "Content": "Rechnungsergebnisse d.?ffentlichen Gesamthaushalts, Nettoausgaben, Personalausgaben, Bauma?nahmen, Deutschland insgesamt, K?rperschaftsgruppen, Aufgabenbereiche der ?ffentlichen Haushalte, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1992-2011", - "LatestUpdate": "26.02.2014 15:37:23h", + "Code": "62361BJ019", + "Content": "Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. Sonderz., Mittlere Bruttojahresverdienste inkl. Sonderz., Deutschland insgesamt, Geschlecht, Berufsgattungen (KB2010), 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2022-2023", + "LatestUpdate": "28.03.2024 08:04:51h", "Information": "false" } ], "Statistics": [ { - "Code": "12211", - "Content": "Mikrozensus", - "Cubes": "483", - "Information": "true" - }, - { - "Code": "21331", - "Content": "Statistik der Gasth?rer", - "Cubes": "2", - "Information": "true" - }, - { - "Code": "21341", - "Content": "Statistik des Hochschulpersonals", - "Cubes": "3", - "Information": "true" - }, - { - "Code": "21351", - "Content": "Statistik der Habilitationen", - "Cubes": "6", - "Information": "true" - }, - { - "Code": "21352", - "Content": "Statistik der Promovierenden", - "Cubes": "28", - "Information": "true" - }, - { - "Code": "21371", - "Content": "Hochschulfinanzstatistik", - "Cubes": "8", - "Information": "true" - }, - { - "Code": "21381", - "Content": "Hochschulstatistische Kennzahlen", - "Cubes": "11", + "Code": "12251", + "Content": "Arbeitsmarktstatistik des Mikrozensus", + "Cubes": "60", "Information": "false" }, { - "Code": "21431", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz", - "Cubes": "37", + "Code": "45413", + "Content": "Statistik über die touristische Nachfrage", + "Cubes": "10", "Information": "true" }, { - "Code": "21811", - "Content": "Ausgaben, Einnahmen, Personal ?ff. Forschungseinr.", - "Cubes": "47", + "Code": "46181", + "Content": "Personenverkehr mit Bussen und Bahnen", + "Cubes": "11", "Information": "true" }, { "Code": "51000", - "Content": "Au?enhandel", + "Content": "Außenhandel", "Cubes": "79", "Information": "true" }, { "Code": "62361", "Content": "Verdiensterhebung", - "Cubes": "103", - "Information": "true" - }, - { - "Code": "71141", - "Content": "Rechnungsergebnisse d.?ffentlichen Gesamthaushalts", - "Cubes": "10", + "Cubes": "152", "Information": "true" } ], "Tables": [ { - "Code": "12211-0009", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Deutschland,\nJahre, Geschlecht, Stellung im Beruf, Berufe", - "Time": "" - }, - { - "Code": "21331-0002", - "Content": "Gasth?rer: Deutschland, Semester, F?chergruppen", + "Code": "12251-0006", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Deutschland, Jahre, Geschlecht, Stellung im Beruf, Benutztes Verkehrsmittel für den Hinweg zur Arbeitsstätte", "Time": "" }, { - "Code": "21341-0002", - "Content": "Hauptberufliches wissenschaftliches und k?nstlerisches\nPersonal an Hochschulen: Deutschland, Jahre, Lehr- und\nForschungsbereiche nach F?chergruppen, Geschlecht", + "Code": "45413-0004", + "Content": "Reisen: Deutschland, Jahre,\nReisedauer/Reisegründe/Unterkünfte/Verkehrsmittel", "Time": "" }, { - "Code": "21341-0003", - "Content": "Professoren: Deutschland, Jahre, F?chergruppen, Geschlecht", + "Code": "46181-0001", + "Content": "Beförderte Personen, Beförderungsleistung\n(Personenfernverkehr mit Bussen): Deutschland, Jahre,\nVerkehrsart, Hauptverkehrsverbindung", "Time": "" }, { - "Code": "21351-0001", - "Content": "Habilitationen: Deutschland, Jahre, F?chergruppen,\nNationalit?t, Geschlecht", + "Code": "46181-0002", + "Content": "Fahrleistung, Beförderungsangebot (Personenfernverkehr mit\nBussen): Deutschland, Jahre, Verkehrsart, Einsatzgebiet", "Time": "" }, { - "Code": "21351-0002", - "Content": "Durchschnittsalter der habilitierten Personen: Deutschland,\nJahre, F?chergruppen, Geschlecht", + "Code": "46181-0003", + "Content": "Unternehmen, Beförderte Personen, Beförderungsleistung,\nFahrleistung, Beförderungsangebot (Personenverkehr m. Bussen\nu. Bahnen): Deutschland, Jahre, Tätigkeit der Unternehmen", "Time": "" }, { - "Code": "21352-0002", - "Content": "Promovierende: Deutschland, Stichtag, Geschlecht,\nAltersgruppen, F?chergruppen", + "Code": "46181-0005", + "Content": "Unternehmen, Beförderte Personen, Personenkilometer\n(Personenverkehr mit Bussen und Bahnen): Deutschland,\nQuartale, Verkehrsart", "Time": "" }, { - "Code": "21352-0003", - "Content": "Promovierende: Deutschland, Stichtag, Nationalit?t,\nGeschlecht, F?chergruppen und Studienbereiche", + "Code": "46181-0010", + "Content": "Unternehmen, Beförderte Personen, Beförderungsleistung,\nFahrleistung, Beförderungsangebot (Personenverkehr mit\nBussen und Bahnen): Bundesländer, Jahre, Verkehrsart", "Time": "" }, { - "Code": "21352-0004", - "Content": "Durchschnittsalter der Promovierenden: Deutschland,\nStichtag, Geschlecht, F?chergruppen", + "Code": "46181-0011", + "Content": "Unternehmen, Beförderte Pers., Beförderungs-, Fahrleistung,\nBeförderungsangebot, Einnahmen (Personenverkehr mit\nBussen und Bahnen): Bundesländer, Jahre, Unternehmensart", "Time": "" }, { - "Code": "21371-0001", - "Content": "Ausgaben der Hochschulen: Deutschland, Jahre, Hochschulart,\nF?chergruppen", + "Code": "46181-0012", + "Content": "Beförderungs-, Fahrleistung (von großen Unternehmen)\n(Personenverkehr mit Bussen und Bahnen): Bundesländer,\nJahre, Verkehrsart", "Time": "" }, { - "Code": "21371-0002", - "Content": "Ausgaben der Hochschulen: Bundesl?nder, Jahre, Hochschulart,\nF?chergruppen", + "Code": "46181-0015", + "Content": "Unternehmen, Beförderte Personen, Personenkilometer\n(Personenverkehr mit Bussen und Bahnen): Bundesländer,\nQuartale, Verkehrsart", "Time": "" }, { - "Code": "21381-0005", - "Content": "Laufende Ausgaben der Hochschulen, Drittmittel der\nHochschulen: Deutschland, Jahre, F?chergruppen", + "Code": "46181-0020", + "Content": "Linienlängen, Linien im Nahverkehr (Personenverkehr mit\nBussen und Bahnen): Bundesländer, Stichtag, Verkehrsart", "Time": "" }, { - "Code": "21431-0004", - "Content": "Stipendiaten: Deutschland, Jahre, Nationalit?t, Geschlecht,\nF?chergruppen", + "Code": "46181-0021", + "Content": "Fahrzeuge, Sitz-, Stehplätze (Personenverkehr mit Bussen und\nBahnen): Bundesländer, Stichtag, Verkehrsart", "Time": "" }, { - "Code": "21811-0003", - "Content": "Interne Ausgaben f?r Forschung und Entwicklung: Deutschland,\nJahre, Einrichtungsart, Wissenschaftszweige", + "Code": "46181-0022", + "Content": "Beschäftigte (Personenverkehr mit Bussen und Bahnen):\nBundesländer, Stichtag, Einsatzart", "Time": "" }, { - "Code": "21811-0005", - "Content": "Personal f?r Forschung und Entwicklung (Vollzeit?quivalente): Deutschland, Jahre, Einrichtungsart, Wissenschaftszweige", - "Time": "" - }, - { - "Code": "21811-0007", - "Content": "Personal f?r Forschung und Entwicklung (Vollzeit?quivalente): Deutschland, Jahre, Personalgruppen, Wissenschaftszweige", + "Code": "51000-0005", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWarensystematik", "Time": "" }, { - "Code": "21811-0022", - "Content": "Interne Ausgaben f?r Forschung und Entwicklung: Bundesl?nder\nund Ausland, Jahre, Wissenschaftszweige", + "Code": "51000-0006", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWarensystematik", "Time": "" }, { - "Code": "51000-0005", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWarensystematik", + "Code": "51000-0007", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre, Länder,\nWarensystematik", "Time": "" }, { - "Code": "51000-0006", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWarensystematik", + "Code": "51000-0008", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate, Länder,\nWarensystematik", "Time": "" }, { "Code": "51000-0009", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (4-/6-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (4-/6-Steller)", "Time": "" }, { "Code": "51000-0010", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWare (4-/6-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWare (4-/6-Steller), Länder", "Time": "" }, { "Code": "51000-0011", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate, Land,\nWarenverzeichnis (4-/6-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate, Land,\nWarenverzeichnis (4-/6-Steller)", "Time": "" }, { "Code": "51000-0012", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWare (4-/6-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWare (4-/6-Steller), Länder", "Time": "" }, { "Code": "51000-0013", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0014", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0015", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre, Land,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0016", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Jahre,\nWare (8-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Jahre,\nWare (8-Steller), Länder", "Time": "" }, { "Code": "51000-0017", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate, Land,\nWarenverzeichnis (8-Steller)", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate, Land,\nWarenverzeichnis (8-Steller)", "Time": "" }, { "Code": "51000-0018", - "Content": "Aus- und Einfuhr (Au?enhandel): Deutschland, Monate,\nWare (8-Steller), L?nder", + "Content": "Aus- und Einfuhr (Außenhandel): Deutschland, Monate,\nWare (8-Steller), Länder", "Time": "" }, { - "Code": "62361-0030", - "Content": "Bruttostundenverdienste, Bruttomonatsverdienste: Deutschland, Stichmonat, Geschlecht, Berufe", + "Code": "51000-0034", + "Content": "Aus- und Einfuhr (Außenhandel): Bundesländer, Jahre,\nWarensystematik", "Time": "" }, { - "Code": "71141-0004", - "Content": "Rechnungsergebnisse des ?ffentlichen Gesamthaushalts\n(Nettoausgaben, Personalausgaben, Bauma?nahmen):\nDeutschland, Jahre, K?rperschaftsgruppen, Aufgabenbereiche", + "Code": "51000-0035", + "Content": "Aus- und Einfuhr (Außenhandel): Bundesländer, Monate,\nWarensystematik", "Time": "" - } - ], - "Timeseries": null, - "Variables": [ - { - "Code": "AFGBE3", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", - "Type": "sachlich", - "Values": "22", - "Information": "false" }, { - "Code": "BERLF1", - "Content": "Lehr- und Forschungsbereiche", - "Type": "sachlich", - "Values": "84", - "Information": "false" - }, - { - "Code": "BILFG1", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "10", - "Information": "false" - }, - { - "Code": "BILFG2", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "10", - "Information": "false" + "Code": "51000-0036", + "Content": "Aus- und Einfuhr (Außenhandel): Bundesländer, Jahre,\nLänder, Warensystematik", + "Time": "" }, { - "Code": "BILFG3", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "11", - "Information": "false" + "Code": "51000-0037", + "Content": "Aus- und Einfuhr (Außenhandel): Bundesländer, Monate,\nLänder, Warensystematik", + "Time": "" }, { - "Code": "BILFG4", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "9", - "Information": "false" + "Code": "51000-0050", + "Content": "Ein- u. Ausfuhr (Volumen) (Außenhandel): Deutschland, Jahre,\nLändergruppen, Warengruppen (EGW 2002: 3-Steller)", + "Time": "" }, { - "Code": "BILFG5", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "8", - "Information": "false" + "Code": "51000-0051", + "Content": "Ein- u. Ausfuhr (Volumen) (Außenhandel): Deutschland,\nMonate, Ländergruppen, Warengruppen (EGW 2002: 3-Steller)", + "Time": "" }, { - "Code": "BILFG6", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "12", - "Information": "false" + "Code": "62361-0030", + "Content": "Bruttostundenverdienste, Bruttomonatsverdienste: Deutschland, Stichmonat, Geschlecht, Berufe", + "Time": "" }, { - "Code": "BILFG7", - "Content": "F?chergruppen", - "Type": "sachlich", - "Values": "9", - "Information": "false" - }, + "Code": "62361-0034", + "Content": "Bruttojahresverdienste: Deutschland, Jahre, Geschlecht, Berufe", + "Time": "" + } + ], + "Timeseries": null, + "Variables": [ { - "Code": "KB10A1", - "Content": "Berufsbereiche (KB2010), 1-Steller", + "Code": "ARBVK1", + "Content": "Benutztes Verkehrsmittel f.d. Hinweg z. Arbeitsst.", "Type": "sachlich", "Values": "10", - "Information": "false" + "Information": "true" }, { - "Code": "KB10A3", - "Content": "Berufsgruppen (KB2010), 3-Steller", + "Code": "EGW3", + "Content": "Warengruppen (EGW 2002: 3-Steller)", "Type": "sachlich", - "Values": "144", + "Values": "212", "Information": "true" }, { @@ -679,27 +554,27 @@ "Values": "1300", "Information": "true" }, + { + "Code": "VERKM1", + "Content": "Verkehrsmittel", + "Type": "sachlich", + "Values": "6", + "Information": "false" + }, { "Code": "WAM6", - "Content": "Warenverzeichnis Au?enhandelsstatistik (6-Steller)", + "Content": "Warenverzeichnis Außenhandelsstatistik (6-Steller)", "Type": "sachlich", "Values": "6435", "Information": "true" }, { "Code": "WAM8", - "Content": "Warenverzeichnis Au?enhandelsstatistik (8-Steller)", + "Content": "Warenverzeichnis Außenhandelsstatistik (8-Steller)", "Type": "sachlich", - "Values": "14244", + "Values": "14270", "Information": "true" - }, - { - "Code": "WISZW1", - "Content": "Wissenschaftszweige", - "Type": "sachlich", - "Values": "6", - "Information": "false" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/find3/api/find/find-9961d3.json b/tests/testthat/find3/api/find/find-9961d3.json index e8345bd..e477ce6 100644 --- a/tests/testthat/find3/api/find/find-9961d3.json +++ b/tests/testthat/find3/api/find/find-9961d3.json @@ -16,279 +16,25 @@ "pagelength": "100", "language": "de" }, - "Cubes": [ - { - "Code": "12111B1001", - "Content": "Zensus, Bevoelkerung (Zensus), Deutschland insgesamt, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "12.10.2017 14:40:27h", - "Information": "false" - }, - { - "Code": "12111B1002", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Nationalit?t, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:20h", - "Information": "false" - }, - { - "Code": "12111B1003", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Geschlecht, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "02.03.2018 14:22:34h", - "Information": "false" - }, - { - "Code": "12111B1004", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "02.03.2018 14:18:48h", - "Information": "false" - }, - { - "Code": "12111B1005", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Altersgruppen (u18-65m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:24h", - "Information": "false" - }, - { - "Code": "12111B1006", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:26h", - "Information": "false" - }, - { - "Code": "12111B1007", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Nationalit?t, Geschlecht, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:28h", - "Information": "false" - }, - { - "Code": "12111B1008", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Nationalit?t, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:29h", - "Information": "false" - }, - { - "Code": "12111B1009", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Nationalit?t, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:30h", - "Information": "false" - }, - { - "Code": "12111B1010", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Geschlecht, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:17h", - "Information": "false" - }, - { - "Code": "12111B1011", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Geschlecht, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:54h", - "Information": "false" - }, - { - "Code": "12111B1012", - "Content": "Zensus, Bev?lkerung (Zensus), Deutschland insgesamt, Altersgruppen (u18-65m), Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:55h", - "Information": "false" - }, - { - "Code": "12111L1001", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:57h", - "Information": "false" - }, - { - "Code": "12111L1002", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:59h", - "Information": "false" - }, - { - "Code": "12111L1003", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:00h", - "Information": "false" - }, - { - "Code": "12111L1004", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:02h", - "Information": "false" - }, - { - "Code": "12111L1005", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u18-65m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:04h", - "Information": "false" - }, - { - "Code": "12111L1006", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:05h", - "Information": "false" - }, - { - "Code": "12111L1007", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Geschlecht, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:07h", - "Information": "false" - }, - { - "Code": "12111L1008", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:09h", - "Information": "false" - }, - { - "Code": "12111L1009", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:10h", - "Information": "false" - }, - { - "Code": "12111L1010", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Altersgruppen (u3-75m), Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:12h", - "Information": "false" - }, - { - "Code": "12111L1011", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:16h", - "Information": "false" - }, - { - "Code": "12111L1012", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u18-65m), Familienstand, Stichtag", - "State": "vollst?ndig mit Werten", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:14h", - "Information": "false" - } - ], + "Cubes": null, "Statistics": [ { "Code": "12111", "Content": "Zensus", - "Cubes": "24", + "Cubes": "0", "Information": "true" } ], - "Tables": [ - { - "Code": "12111-0001", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Nationalit?t,\nGeschlecht", - "Time": "" - }, - { - "Code": "12111-0002", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Nationalit?t,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0003", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Nationalit?t,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0004", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Geschlecht,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0005", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Geschlecht,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0006", - "Content": "Bev?lkerung (Zensus): Deutschland, Stichtag, Familienstand,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0101", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht", - "Time": "" - }, - { - "Code": "12111-0102", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0103", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0104", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0105", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0106", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Familienstand,\nAltersgruppen", - "Time": "" - } - ], + "Tables": null, "Timeseries": null, "Variables": [ { "Code": "BEVZ01", - "Content": "Bev?lkerung (Zensus)", + "Content": "Bevölkerung (Zensus)", "Type": "Wert", "Values": "-1", "Information": "false" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/logincheck1/api/helloworld/logincheck-aabf05.R b/tests/testthat/logincheck1/api/helloworld/logincheck-aabf05.R new file mode 100644 index 0000000..c3f7dd6 --- /dev/null +++ b/tests/testthat/logincheck1/api/helloworld/logincheck-aabf05.R @@ -0,0 +1,5 @@ +structure(list(method = "GET", url = "/api/helloworld/logincheck?username=ABCDEF&password=1234abcd&username=ABCDEF&password=1234abcd", + status_code = 200L, headers = structure(list(Date = "Tue, 09 Jul 2024 09:39:46 GMT", + Server = "Apache", `Content-Length` = "79", `Content-Type` = "application/json;charset=UTF-8"), class = "httr2_headers"), + body = charToRaw("{\"Status\":\"Ein Fehler ist aufgetreten\",\"Username\":\"DE5256891X\"}"), + cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/testthat/meta3/api/metadata/table-7837de.json b/tests/testthat/meta1/api/metadata/table-4041ce.json similarity index 87% rename from tests/testthat/meta3/api/metadata/table-7837de.json rename to tests/testthat/meta1/api/metadata/table-4041ce.json index b64589b..a735760 100644 --- a/tests/testthat/meta3/api/metadata/table-7837de.json +++ b/tests/testthat/meta1/api/metadata/table-4041ce.json @@ -12,15 +12,15 @@ "username": "********************", "password": "********************", "name": "11111-0001", - "area": "oeffentlich", + "area": "Alle", "language": "de" }, "Object": { "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", + "Content": "Gebietsfläche: Bundesländer, Stichtag", "Time": { "From": "31.12.1995", - "To": "31.12.2020" + "To": "31.12.2022" }, "Valid": "false", "Structure": { @@ -33,7 +33,7 @@ "Structure": [ { "Code": "FLC006", - "Content": "Gebietsfl?che", + "Content": "Gebietsfläche", "Type": "Merkmal", "Values": null, "Selected": null, @@ -57,7 +57,7 @@ "Rows": [ { "Code": "DLAND", - "Content": "Bundesl?nder", + "Content": "Bundesländer", "Type": "Merkmal", "Values": null, "Selected": null, @@ -70,5 +70,5 @@ }, "Updated": "28.12.2022 09:24:14h" }, - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/meta2_fake/api/metadata/cube-844a6b.json b/tests/testthat/meta2_fake/api/metadata/cube-844a6b.json new file mode 100644 index 0000000..acf4d5a --- /dev/null +++ b/tests/testthat/meta2_fake/api/metadata/cube-844a6b.json @@ -0,0 +1,99 @@ +{ + "Ident": { + "Service": "metadata", + "Method": "cube" + }, + "Status": { + "Code": 999, + "Content": "test error message", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "1*", + "area": "Alle", + "language": "de" + }, + "Object": { + "Code": "12631BJ003", + "Content": "Statistik rechtskräftiger Urteile in Ehesachen, Ehescheidungen, Ehedauer, Gemeinsame minderjährige Kinder, Deutschland insgesamt, Jahr", + "State": "undefiniert", + "Timeslices": [ + "1997", + "1998", + "1999", + "2000", + "2001", + "2002", + "2003", + "2004", + "2005", + "2006", + "2007", + "2008", + "2009", + "2010", + "2011", + "2012", + "2013", + "2014", + "2015", + "2016", + "2017", + "2018", + "2019", + "2020", + "2021", + "2022", + "2023" + ], + "Values": "0", + "Statistic": { + "Code": "12631", + "Content": "Statistik rechtskräftiger Urteile in Ehesachen", + "Updated": "10.10.2023 13:47:12h" + }, + "Structure": { + "Axis": [ + { + "Code": "BEVED1", + "Content": "Ehedauer", + "Type": "klassifizierend", + "Updated": "19.02.2019 16:40:34h" + }, + { + "Code": "BEVMK1", + "Content": "Gemeinsame minderjährige Kinder", + "Type": "klassifizierend", + "Updated": "25.01.2016 13:54:27h" + }, + { + "Code": "DINSG", + "Content": "Deutschland insgesamt", + "Type": "klassifizierend", + "Updated": "25.01.2016 13:54:17h" + }, + { + "Code": "JAHR", + "Content": "Jahr", + "Type": "zeitidentifizierend", + "Updated": "28.12.2022 09:37:21h" + } + ], + "Contents": [ + { + "Code": "BEV004", + "Content": "Ehescheidungen", + "Type": "Ganzzahl", + "Unit": "Anzahl", + "Values": "", + "Timeslices": null, + "Updated": "04.08.2016 11:00:13h" + } + ] + }, + "Updated": "27.06.2024 08:06:32h" + }, + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/meta2_fake/api/metadata/cube-8d0bb5.json b/tests/testthat/meta2_fake/api/metadata/cube-8d0bb5.json deleted file mode 100644 index dcd9d6c..0000000 --- a/tests/testthat/meta2_fake/api/metadata/cube-8d0bb5.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "Ident": { - "Service": "metadata", - "Method": "table" - }, - "Status": { - "Code": 100, - "Content": "test error message", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "11111-0001", - "area": "oeffentlich", - "language": "de" - }, - "Object": { - "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", - "Time": { - "From": "31.12.1995", - "To": "31.12.2020" - }, - "Valid": "false", - "Structure": { - "Head": { - "Code": "11111", - "Content": "Feststellung des Gebietsstands", - "Type": "Statistik", - "Values": null, - "Selected": null, - "Structure": [ - { - "Code": "FLC006", - "Content": "Gebietsfl?che", - "Type": "Merkmal", - "Values": null, - "Selected": null, - "Structure": null, - "Updated": "see parent" - } - ], - "Updated": "see parent" - }, - "Columns": [ - { - "Code": "STAG", - "Content": "Stichtag", - "Type": "Merkmal", - "Values": "1", - "Selected": "1", - "Structure": null, - "Updated": "see parent" - } - ], - "Rows": [ - { - "Code": "DLAND", - "Content": "Bundesl?nder", - "Type": "Merkmal", - "Values": null, - "Selected": null, - "Structure": null, - "Updated": "see parent" - } - ], - "Subtitel": null, - "Subheading": null - }, - "Updated": "28.12.2022 09:24:14h" - }, - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/meta1/api/metadata/table-7837de.json b/tests/testthat/meta3/api/metadata/table-4041ce.json similarity index 87% rename from tests/testthat/meta1/api/metadata/table-7837de.json rename to tests/testthat/meta3/api/metadata/table-4041ce.json index b64589b..a735760 100644 --- a/tests/testthat/meta1/api/metadata/table-7837de.json +++ b/tests/testthat/meta3/api/metadata/table-4041ce.json @@ -12,15 +12,15 @@ "username": "********************", "password": "********************", "name": "11111-0001", - "area": "oeffentlich", + "area": "Alle", "language": "de" }, "Object": { "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", + "Content": "Gebietsfläche: Bundesländer, Stichtag", "Time": { "From": "31.12.1995", - "To": "31.12.2020" + "To": "31.12.2022" }, "Valid": "false", "Structure": { @@ -33,7 +33,7 @@ "Structure": [ { "Code": "FLC006", - "Content": "Gebietsfl?che", + "Content": "Gebietsfläche", "Type": "Merkmal", "Values": null, "Selected": null, @@ -57,7 +57,7 @@ "Rows": [ { "Code": "DLAND", - "Content": "Bundesl?nder", + "Content": "Bundesländer", "Type": "Merkmal", "Values": null, "Selected": null, @@ -70,5 +70,5 @@ }, "Updated": "28.12.2022 09:24:14h" }, - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/modified1/api/catalogue/modifieddata-00f7a4.json b/tests/testthat/modified1/api/catalogue/modifieddata-00f7a4.json index 78a79db..639831e 100644 --- a/tests/testthat/modified1/api/catalogue/modifieddata-00f7a4.json +++ b/tests/testthat/modified1/api/catalogue/modifieddata-00f7a4.json @@ -21,11 +21,11 @@ "List": [ { "Code": "61111", - "Content": "Verbraucherpreisindex fuer Deutschland", + "Content": "Verbraucherpreisindex für Deutschland", "Type": "Aktualisierte Statistiken", - "Date": "10.03.2023", - "Added": "Feb 2023" + "Date": "12.06.2024", + "Added": "Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/modified2/api/catalogue/modifieddata-ceb5a8.json b/tests/testthat/modified2/api/catalogue/modifieddata-ceb5a8.json deleted file mode 100644 index 806354c..0000000 --- a/tests/testthat/modified2/api/catalogue/modifieddata-ceb5a8.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "modifieddata" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "61111", - "type": "Alle", - "date": "08.05.2023", - "pagelength": "100", - "language": "de", - "area": "Alle" - }, - "List": [ - null - ], - "Copyright": "© Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/modified3/api/catalogue/modifieddata-00f7a4.json b/tests/testthat/modified3/api/catalogue/modifieddata-00f7a4.json index 78a79db..639831e 100644 --- a/tests/testthat/modified3/api/catalogue/modifieddata-00f7a4.json +++ b/tests/testthat/modified3/api/catalogue/modifieddata-00f7a4.json @@ -21,11 +21,11 @@ "List": [ { "Code": "61111", - "Content": "Verbraucherpreisindex fuer Deutschland", + "Content": "Verbraucherpreisindex für Deutschland", "Type": "Aktualisierte Statistiken", - "Date": "10.03.2023", - "Added": "Feb 2023" + "Date": "12.06.2024", + "Added": "Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/modified4_fake/api/catalogue/modifieddata-66ae58.json b/tests/testthat/modified4_fake/api/catalogue/modifieddata-66ae58.json index 0c291fa..300b6b4 100644 --- a/tests/testthat/modified4_fake/api/catalogue/modifieddata-66ae58.json +++ b/tests/testthat/modified4_fake/api/catalogue/modifieddata-66ae58.json @@ -5,7 +5,7 @@ }, "Status": { "Code": 104, - "Content": "test warning message", + "Content": "Es gibt keine Objekte zum angegebenen Selektionskriterium", "Type": "Information" }, "Parameter": { @@ -19,5 +19,5 @@ "area": "Alle" }, "List": null, - "Copyright": "Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/searchvars1/api/catalogue/variables-a1a6d0.json b/tests/testthat/searchvars1/api/catalogue/variables-fa86e3.json similarity index 86% rename from tests/testthat/searchvars1/api/catalogue/variables-a1a6d0.json rename to tests/testthat/searchvars1/api/catalogue/variables-fa86e3.json index 5add393..8e1a30e 100644 --- a/tests/testthat/searchvars1/api/catalogue/variables-a1a6d0.json +++ b/tests/testthat/searchvars1/api/catalogue/variables-fa86e3.json @@ -12,7 +12,7 @@ "username": "********************", "password": "********************", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "type": "Alle", @@ -29,7 +29,7 @@ }, { "Code": "ABF002", - "Content": "Im eigenen Betrieb erzeugte Abf?lle", + "Content": "Im eigenen Betrieb erzeugte Abfälle", "Type": "Wert", "Values": "-1", "Information": "false" @@ -57,28 +57,28 @@ }, { "Code": "ABF006", - "Content": "Abf?lle zur Beseitigung", + "Content": "Abfälle zur Beseitigung", "Type": "Wert", "Values": "-1", "Information": "false" }, { "Code": "ABF007", - "Content": "Abf?lle zur Verwertung", + "Content": "Abfälle zur Verwertung", "Type": "Wert", "Values": "-1", "Information": "false" }, { "Code": "ABF008", - "Content": "Beim Erstempf?nger beseitigte Haushaltsabf?lle", + "Content": "Beim Erstempfänger beseitigte Haushaltsabfälle", "Type": "Wert", "Values": "-1", "Information": "false" }, { "Code": "ABF009", - "Content": "Beim Erstempf?nger verwertete Haushaltsabf?lle", + "Content": "Beim Erstempfänger verwertete Haushaltsabfälle", "Type": "Wert", "Values": "-1", "Information": "false" @@ -99,7 +99,7 @@ }, { "Code": "ABF012", - "Content": "Abfallmengen, von Prim?rerzeugern erzeugt", + "Content": "Abfallmengen, von Primärerzeugern erzeugt", "Type": "Wert", "Values": "-1", "Information": "false" @@ -120,11 +120,32 @@ }, { "Code": "ABF015", - "Content": "Abf?lle zu vorbereitenden Verfahren", + "Content": "Abfälle zu vorbereitenden Verfahren", "Type": "Wert", "Values": "-1", "Information": "false" }, + { + "Code": "ABF016", + "Content": "Abfallaufkommen", + "Type": "Wert", + "Values": "-1", + "Information": "false" + }, + { + "Code": "ABF017", + "Content": "Abfallverwertungsquote", + "Type": "Wert", + "Values": "-1", + "Information": "true" + }, + { + "Code": "ABF018", + "Content": "Abfallrecyclingquote", + "Type": "Wert", + "Values": "-1", + "Information": "true" + }, { "Code": "ABFAT1", "Content": "Abfallarten", @@ -139,6 +160,27 @@ "Values": "14", "Information": "false" }, + { + "Code": "ABFAT3", + "Content": "Abfallarten", + "Type": "sachlich", + "Values": "9", + "Information": "false" + }, + { + "Code": "ABFAT4", + "Content": "Abfallarten", + "Type": "sachlich", + "Values": "2", + "Information": "false" + }, + { + "Code": "ABFES1", + "Content": "Art der Abfallentsorgung", + "Type": "sachlich", + "Values": "5", + "Information": "false" + }, { "Code": "ABG002", "Content": "Produktions- und Importabgaben abzgl. Subventionen", @@ -169,7 +211,7 @@ }, { "Code": "ABG006", - "Content": "W?rmeabgabe", + "Content": "Wärmeabgabe", "Type": "Wert", "Values": "-1", "Information": "false" @@ -253,14 +295,14 @@ }, { "Code": "ABS015", - "Content": "Steuerfreier Bierabsatz in EU-L?nder", + "Content": "Steuerfreier Bierabsatz in EU-Länder", "Type": "Wert", "Values": "-1", "Information": "false" }, { "Code": "ABS016", - "Content": "Steuerfreier Bierabsatz in Drittl?nder", + "Content": "Steuerfreier Bierabsatz in Drittländer", "Type": "Wert", "Values": "-1", "Information": "false" @@ -316,7 +358,7 @@ }, { "Code": "ABZ002", - "Content": "Abz?ge der Arbeitnehmer", + "Content": "Abzüge der Arbeitnehmer", "Type": "Wert", "Values": "-1", "Information": "true" @@ -351,14 +393,14 @@ }, { "Code": "ADANS3", - "Content": "Art der T?tigkeit", + "Content": "Art der Tätigkeit", "Type": "sachlich", "Values": "11", "Information": "false" }, { "Code": "ADBES1", - "Content": "Art der Best?nde", + "Content": "Art der Bestände", "Type": "sachlich", "Values": "4", "Information": "false" @@ -379,7 +421,7 @@ }, { "Code": "ADOEL1", - "Content": "Verwandtschaftsverh?ltnis zu den Adoptiveltern", + "Content": "Verwandtschaftsverhältnis zu den Adoptiveltern", "Type": "sachlich", "Values": "3", "Information": "false" @@ -475,13 +517,6 @@ "Values": "4", "Information": "false" }, - { - "Code": "ADV09A", - "Content": "Nutzungsarten (AdV-Nutzungsartenkatalog 2009)", - "Type": "sachlich", - "Values": "32", - "Information": "false" - }, { "Code": "ADVTN3", "Content": "Nutzungsarten (AdV-Nutzungsartenverzeichnis 1991)", @@ -510,9 +545,16 @@ "Values": "4", "Information": "false" }, + { + "Code": "ADVTN7", + "Content": "Nutzungsarten (AdV-Nutzungsartenkatalog 2009)", + "Type": "sachlich", + "Values": "32", + "Information": "true" + }, { "Code": "AEW006", - "Content": "Erzeuger von prim?r nachgewiesenen Abfallmengen", + "Content": "Erzeuger von primär nachgewiesenen Abfallmengen", "Type": "Wert", "Values": "-1", "Information": "true" @@ -540,21 +582,28 @@ }, { "Code": "AFGBE3", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", + "Content": "Aufgabenbereiche der öffentlichen Haushalte", "Type": "sachlich", "Values": "22", "Information": "false" }, { "Code": "AFGBE4", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", + "Content": "Aufgabenbereiche der öffentlichen Haushalte", "Type": "sachlich", "Values": "6", "Information": "false" }, + { + "Code": "AFGBE5", + "Content": "Aufgabenbereiche des Trägers", + "Type": "sachlich", + "Values": "4", + "Information": "false" + }, { "Code": "AFHMN1", - "Content": "Aufenthalt vor der Ma?nahme", + "Content": "Aufenthalt vor der Maßnahme", "Type": "sachlich", "Values": "12", "Information": "false" @@ -594,30 +643,44 @@ "Values": "2", "Information": "false" }, + { + "Code": "AGL001", + "Content": "Relative Armutsgefährdungslücke (60%-Median)", + "Type": "Wert", + "Values": "-1", + "Information": "true" + }, { "Code": "AGQ001", - "Content": "Armutsgef?hrdungsquote", + "Content": "Armutsgefährdungsquote", "Type": "Wert", "Values": "-1", "Information": "true" }, { "Code": "AGQ002", - "Content": "Armutsgef?hrdungsquote von Personen ab 16 Jahren", + "Content": "Armutsgefährdungsquote von Personen ab 16 Jahren", "Type": "Wert", "Values": "-1", "Information": "true" }, { "Code": "AGQ003", - "Content": "Armutsgef?hrdungsquote v.erwerbst?t. Pers.ab 16 J.", + "Content": "Armutsgefährdungsquote v.erwerbstät. Pers.ab 16 J.", "Type": "Wert", "Values": "-1", "Information": "true" }, { "Code": "AGQ004", - "Content": "Armutsgef?hrdungsquote v.erwerbst?t. Pers.ab 18 J.", + "Content": "Armutsgefährdungsquote v.erwerbstät. Pers.ab 18 J.", + "Type": "Wert", + "Values": "-1", + "Information": "true" + }, + { + "Code": "AGS001", + "Content": "Armutsgefährdungsschwelle (60%-Median)", "Type": "Wert", "Values": "-1", "Information": "true" @@ -631,21 +694,21 @@ }, { "Code": "AKG001", - "Content": "W?gung Index der Arbeitskosten je geleistete Std.", + "Content": "Wägung Index der Arbeitskosten je geleistete Std.", "Type": "Wert", "Values": "-1", "Information": "true" }, { "Code": "AKG002", - "Content": "W?gung Index d.Bruttoverdienste je geleistete Std.", + "Content": "Wägung Index d.Bruttoverdienste je geleistete Std.", "Type": "Wert", "Values": "-1", "Information": "true" }, { "Code": "AKG003", - "Content": "W?gung Index d. Lohnnebenkosten je geleistete Std.", + "Content": "Wägung Index d. Lohnnebenkosten je geleistete Std.", "Type": "Wert", "Values": "-1", "Information": "true" @@ -656,70 +719,7 @@ "Type": "Wert", "Values": "-1", "Information": "true" - }, - { - "Code": "AKI002", - "Content": "Index der Bruttoverdienste je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKI003", - "Content": "Index der Lohnnebenkosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKJ001", - "Content": "Adoptierte Kinder und Jugendliche", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKNSI1", - "Content": "Sitz des Auftrag-/Konzessionsnehmers", - "Type": "sachlich", - "Values": "4", - "Information": "true" - }, - { - "Code": "AKO001", - "Content": "Arbeitskosten je Vollzeiteinheit", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKO002", - "Content": "Arbeitskosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKO003", - "Content": "Bruttoverdienste je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "AKO004", - "Content": "Lohnnebenkosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "AKO007", - "Content": "Bruttoarbeitskosten je Vollzeiteinheit", - "Type": "Wert", - "Values": "-1", - "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/searchvars2/api/catalogue/variables-05bbfd.json b/tests/testthat/searchvars2/api/catalogue/variables-05bbfd.json new file mode 100644 index 0000000..c7f5aef --- /dev/null +++ b/tests/testthat/searchvars2/api/catalogue/variables-05bbfd.json @@ -0,0 +1,24 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "variables" + }, + "Status": { + "Code": 104, + "Content": "There are no objects matching your selection.", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "selection": "74111", + "area": "all", + "searchcriterion": "code", + "sortcriterion": "code", + "type": "all", + "pagelength": "100", + "language": "en" + }, + "List": null, + "Copyright": "© Federal Statistical Office, Wiesbaden 2024" +} diff --git a/tests/testthat/searchvars2_fake/api/catalogue/variables-d0341c.json b/tests/testthat/searchvars2_fake/api/catalogue/variables-d0341c.json deleted file mode 100644 index 89140ab..0000000 --- a/tests/testthat/searchvars2_fake/api/catalogue/variables-d0341c.json +++ /dev/null @@ -1,725 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "variables" - }, - "Status": { - "Code": 100, - "Content": "test error message", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "selection": "", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", - "type": "Alle", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "ABF001", - "Content": "Input von Abfallentsorgungsanlagen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF002", - "Content": "Im eigenen Betrieb erzeugte Abf?lle", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF003", - "Content": "Aus dem Inland angelieferter Abfall", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF004", - "Content": "Aus dem Ausland angelieferter Abfall", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF005", - "Content": "Output von Abfallentsorgungsanlagen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF006", - "Content": "Abf?lle zur Beseitigung", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF007", - "Content": "Abf?lle zur Verwertung", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF008", - "Content": "Beim Erstempf?nger beseitigte Haushaltsabf?lle", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF009", - "Content": "Beim Erstempf?nger verwertete Haushaltsabf?lle", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF010", - "Content": "Abfallerzeuger", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF011", - "Content": "Abfallmengen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF012", - "Content": "Abfallmengen, von Prim?rerzeugern erzeugt", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF013", - "Content": "Einsammler", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABF014", - "Content": "Erzeugte Abfallmenge", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABF015", - "Content": "Abf?lle zu vorbereitenden Verfahren", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABFAT1", - "Content": "Abfallarten", - "Type": "sachlich", - "Values": "5", - "Information": "false" - }, - { - "Code": "ABFAT2", - "Content": "Abfallarten", - "Type": "sachlich", - "Values": "14", - "Information": "false" - }, - { - "Code": "ABG002", - "Content": "Produktions- und Importabgaben abzgl. Subventionen", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABG003", - "Content": "Abgaben auf soz.Leistungen, verbrauchsnahe Steuern", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABG004", - "Content": "Abgabe an Sonstige", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABG005", - "Content": "Stromabgabe", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABG006", - "Content": "W?rmeabgabe", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABNAT1", - "Content": "Abnehmer", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "ABNGR1", - "Content": "Abnehmergruppen", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ABNGR2", - "Content": "Abnehmergruppen", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ABS002", - "Content": "Abschreibungen", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS008", - "Content": "Abschreibungen (Anteil am BPW)", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS009", - "Content": "Stromabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS010", - "Content": "Gasabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS011", - "Content": "Absatz von Bier", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS012", - "Content": "Absatz von Biermischungen", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS013", - "Content": "Versteuerter Bierabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS014", - "Content": "Steuerfreier Bierabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ABS015", - "Content": "Steuerfreier Bierabsatz in EU-L?nder", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS016", - "Content": "Steuerfreier Bierabsatz in Drittl?nder", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS017", - "Content": "Steuerfreier Bierabsatz als Haustrunk", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS019", - "Content": "Absatz von Schaumwein", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS020", - "Content": "Versteuerter Schaumweinabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABS021", - "Content": "Steuerfreier Schaumweinabsatz", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ABSAT1", - "Content": "Absatzrichtung", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ABSATZ", - "Content": "Absatzrichtung", - "Type": "sachlich", - "Values": "5", - "Information": "true" - }, - { - "Code": "ABSBQ1", - "Content": "Bereits erworbener Ausbildungsabschluss", - "Type": "sachlich", - "Values": "9", - "Information": "true" - }, - { - "Code": "ABZ002", - "Content": "Abz?ge der Arbeitnehmer", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ADAFW1", - "Content": "Art der Aufwendungen", - "Type": "sachlich", - "Values": "2", - "Information": "false" - }, - { - "Code": "ADAFW2", - "Content": "Art der Aufwendungen", - "Type": "sachlich", - "Values": "5", - "Information": "false" - }, - { - "Code": "ADANS1", - "Content": "Art der Anstellung", - "Type": "sachlich", - "Values": "2", - "Information": "false" - }, - { - "Code": "ADANS2", - "Content": "Art der Anstellung", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ADANS3", - "Content": "Art der T?tigkeit", - "Type": "sachlich", - "Values": "11", - "Information": "false" - }, - { - "Code": "ADBES1", - "Content": "Art der Best?nde", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "ADFAW1", - "Content": "Art des finanziellen Aufwandes", - "Type": "sachlich", - "Values": "2", - "Information": "false" - }, - { - "Code": "ADINV1", - "Content": "Art der Investitionen", - "Type": "sachlich", - "Values": "8", - "Information": "false" - }, - { - "Code": "ADOEL1", - "Content": "Verwandtschaftsverh?ltnis zu den Adoptiveltern", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ADP001", - "Content": "Aufgehobene Adoptionen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ADP002", - "Content": "Abgebrochene Adoptionspflegen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ADP003", - "Content": "Zur Adoption vorgemerkte Kinder und Jugendliche", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ADP004", - "Content": "Vorgemerkte Adoptionsbewerbungen", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "ADP005", - "Content": "In Adoptionspflege untergebrachte Kinder/Jugendl.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "ADPAT1", - "Content": "Art der Adoption", - "Type": "sachlich", - "Values": "2", - "Information": "false" - }, - { - "Code": "ADPAW1", - "Content": "Art der Personalaufwendungen", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "ADPAW2", - "Content": "Art der Personalaufwendungen", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "ADSAW1", - "Content": "Art der Sachaufwendungen", - "Type": "sachlich", - "Values": "5", - "Information": "false" - }, - { - "Code": "ADSAW2", - "Content": "Art der Sachaufwendungen", - "Type": "sachlich", - "Values": "10", - "Information": "false" - }, - { - "Code": "ADSAW6", - "Content": "Art der Sachaufwendungen", - "Type": "sachlich", - "Values": "16", - "Information": "false" - }, - { - "Code": "ADSST2", - "Content": "Soziale Stellung des Haupteinkommensbeziehers", - "Type": "sachlich", - "Values": "8", - "Information": "false" - }, - { - "Code": "ADSST3", - "Content": "Soziale Stellung des Haupteinkommensbeziehers", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "ADV09A", - "Content": "Nutzungsarten (AdV-Nutzungsartenkatalog 2009)", - "Type": "sachlich", - "Values": "32", - "Information": "false" - }, - { - "Code": "ADVTN3", - "Content": "Nutzungsarten (AdV-Nutzungsartenverzeichnis 1991)", - "Type": "sachlich", - "Values": "8", - "Information": "true" - }, - { - "Code": "ADVTN4", - "Content": "Nutzungsarten (AdV-Nutzungsartenverzeichnis 1991)", - "Type": "sachlich", - "Values": "9", - "Information": "true" - }, - { - "Code": "ADVTN5", - "Content": "Nutzungsarten (AdV-Nutzungsartenverzeichnis 1991)", - "Type": "sachlich", - "Values": "5", - "Information": "true" - }, - { - "Code": "ADVTN6", - "Content": "Nutzungsarten", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "AEW006", - "Content": "Erzeuger von prim?r nachgewiesenen Abfallmengen", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AEW007", - "Content": "Abgegebene Abfallmenge an Entsorger", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "AFGBE1", - "Content": "Aufgabenbereiche", - "Type": "sachlich", - "Values": "14", - "Information": "false" - }, - { - "Code": "AFGBE2", - "Content": "Aufgabenbereiche", - "Type": "sachlich", - "Values": "11", - "Information": "false" - }, - { - "Code": "AFGBE3", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", - "Type": "sachlich", - "Values": "22", - "Information": "false" - }, - { - "Code": "AFGBE4", - "Content": "Aufgabenbereiche der ?ffentlichen Haushalte", - "Type": "sachlich", - "Values": "6", - "Information": "false" - }, - { - "Code": "AFHMN1", - "Content": "Aufenthalt vor der Ma?nahme", - "Type": "sachlich", - "Values": "12", - "Information": "false" - }, - { - "Code": "AFTAT1", - "Content": "Auftragsart", - "Type": "sachlich", - "Values": "5", - "Information": "false" - }, - { - "Code": "AFTAT2", - "Content": "Auftragsart", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "AFTAT3", - "Content": "Auftragsart", - "Type": "sachlich", - "Values": "3", - "Information": "false" - }, - { - "Code": "AGEBN1", - "Content": "Auftraggeberebene", - "Type": "sachlich", - "Values": "4", - "Information": "false" - }, - { - "Code": "AGEBN2", - "Content": "Auftraggeberebene", - "Type": "sachlich", - "Values": "2", - "Information": "false" - }, - { - "Code": "AGQ001", - "Content": "Armutsgef?hrdungsquote", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AGQ002", - "Content": "Armutsgef?hrdungsquote von Personen ab 16 Jahren", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AGQ003", - "Content": "Armutsgef?hrdungsquote v.erwerbst?t. Pers.ab 16 J.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AGQ004", - "Content": "Armutsgef?hrdungsquote v.erwerbst?t. Pers.ab 18 J.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKEA01", - "Content": "Arbeitskostenarten", - "Type": "sachlich", - "Values": "52", - "Information": "true" - }, - { - "Code": "AKG001", - "Content": "W?gung Index der Arbeitskosten je geleistete Std.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKG002", - "Content": "W?gung Index d.Bruttoverdienste je geleistete Std.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKG003", - "Content": "W?gung Index d. Lohnnebenkosten je geleistete Std.", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKI001", - "Content": "Index der Arbeitskosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKI002", - "Content": "Index der Bruttoverdienste je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKI003", - "Content": "Index der Lohnnebenkosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKJ001", - "Content": "Adoptierte Kinder und Jugendliche", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKNSI1", - "Content": "Sitz des Auftrag-/Konzessionsnehmers", - "Type": "sachlich", - "Values": "4", - "Information": "true" - }, - { - "Code": "AKO001", - "Content": "Arbeitskosten je Vollzeiteinheit", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKO002", - "Content": "Arbeitskosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "AKO003", - "Content": "Bruttoverdienste je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "AKO004", - "Content": "Lohnnebenkosten je geleistete Stunde", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "AKO007", - "Content": "Bruttoarbeitskosten je Vollzeiteinheit", - "Type": "Wert", - "Values": "-1", - "Information": "true" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/table1/api/data/tablefile-6dd2df.csv b/tests/testthat/table1/api/data/tablefile-768a25.csv similarity index 77% rename from tests/testthat/table1/api/data/tablefile-6dd2df.csv rename to tests/testthat/table1/api/data/tablefile-768a25.csv index 7e40978..814dab5 100644 --- a/tests/testthat/table1/api/data/tablefile-6dd2df.csv +++ b/tests/testthat/table1/api/data/tablefile-768a25.csv @@ -1,5 +1,6 @@ -statistics_code;statistics_label;time_code;time_label;time;1_variable_code;1_variable_label;1_variable_code;1_variable_code;PREIS1__Consumer_price_index__2020=100;CH0004__Annual_change__in_(%) +statistics_code;statistics_label;time_code;time_label;time;1_variable_code;1_variable_label;1_variable_code;1_variable_code;PREIS1__Consumer_price_index__2020=100;PREIS1__CH0004 61111;Consumer price index for Germany;JAHR;Year;2019;DINSG;Germany;DG;Germany;99.5;+1.4 61111;Consumer price index for Germany;JAHR;Year;2020;DINSG;Germany;DG;Germany;100.0;+0.5 61111;Consumer price index for Germany;JAHR;Year;2021;DINSG;Germany;DG;Germany;103.1;+3.1 61111;Consumer price index for Germany;JAHR;Year;2022;DINSG;Germany;DG;Germany;110.2;+6.9 +61111;Consumer price index for Germany;JAHR;Year;2023;DINSG;Germany;DG;Germany;116.7;+5.9 diff --git a/tests/testthat/terms1/api/catalogue/terms-6ad002.json b/tests/testthat/terms1/api/catalogue/terms-6ad002.json index 7515b13..33c113a 100644 --- a/tests/testthat/terms1/api/catalogue/terms-6ad002.json +++ b/tests/testthat/terms1/api/catalogue/terms-6ad002.json @@ -36,13 +36,13 @@ "Content": "forsten" }, { - "Content": "forstgehoelze" + "Content": "forstgehölze" }, { - "Content": "forstgeh?lze st" + "Content": "forstgehölze st" }, { - "Content": "forstgeh?lzpflanzen" + "Content": "forstgehölzpflanzen" }, { "Content": "forstl" @@ -114,7 +114,7 @@ "Content": "forstwirtschaftlicher" }, { - "Content": "forstwirtschaftsabf?lle" + "Content": "forstwirtschaftsabfälle" }, { "Content": "forstwirtschaftsberufe" @@ -144,5 +144,5 @@ "Content": "forstwissenschaften" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/test_gen_alternative_terms.R b/tests/testthat/test_gen_alternative_terms.R index c4b5311..14f94ed 100644 --- a/tests/testthat/test_gen_alternative_terms.R +++ b/tests/testthat/test_gen_alternative_terms.R @@ -8,7 +8,7 @@ with_mock_dir("terms1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_alternative_terms("forst*", TRUE) + result <- gen_alternative_terms("forst*", TRUE, database = "genesis") expect_type(result, type = "list") @@ -28,25 +28,25 @@ with_mock_dir("terms1", { test_that("search term errors on multiple codes", { expect_error( - restatis::gen_alternative_terms(term = c("611*", "711*")), + gen_alternative_terms(term = c("611*", "711*"), database = "genesis"), regexp = "Parameter 'term' must be a single string.") }) test_that("search term errors on too long search term", { expect_error( - restatis::gen_alternative_terms(term = "dies das ananas!"), + gen_alternative_terms(term = "dies das ananas!", database = "genesis"), regexp = "Parameter 'term' cannot consist of more than 15 characters.") }) test_that("search term errors on wrong parameter type", { expect_error( - restatis::gen_alternative_terms(term = "Krankenhaus", similarity = 1), + gen_alternative_terms(term = "Krankenhaus", similarity = 1, database = "genesis"), regexp = "Parameter 'similarity' has to be of type 'logical'.") }) test_that("search term errors on wrong parameter type", { expect_error( - restatis::gen_alternative_terms(term = 1992, similarity = TRUE), + gen_alternative_terms(term = 1992, similarity = TRUE, database = "genesis"), regexp = "Parameter 'term' has to be of type 'character'.") }) diff --git a/tests/testthat/test_gen_api.R b/tests/testthat/test_gen_api.R index 975bf10..129f595 100644 --- a/tests/testthat/test_gen_api.R +++ b/tests/testthat/test_gen_api.R @@ -1,14 +1,15 @@ # Test for expected output & API calls------------------------------------------ without_internet({ + test_that("We do make GET requests", { skip_on_cran() skip_on_ci() - expect_GET( - restatis:::gen_api(endpoint = "helloworld/whoami"), - "https://www-genesis.destatis.de/genesisWS/rest/2020/helloworld/whoami" - ) + expect_GET(restatis:::gen_api(endpoint = "helloworld/whoami"), + "https://www-genesis.destatis.de/genesisWS/rest/2020/helloworld/whoami") + }) + }) diff --git a/tests/testthat/test_gen_catalogue.R b/tests/testthat/test_gen_catalogue.R index 680866f..49e1579 100644 --- a/tests/testthat/test_gen_catalogue.R +++ b/tests/testthat/test_gen_catalogue.R @@ -8,13 +8,17 @@ with_mock_dir("catalogue1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_catalogue(code = "611*", - detailed = TRUE, - category = "tables", - error.ignore = FALSE) + result <- gen_catalogue(code = "611*", + detailed = TRUE, + category = "tables", + error.ignore = FALSE, + database = "genesis", + language = "en") expect_type(result, type = "list") + }) + }) #------------------------------------------------------------------------------- @@ -26,12 +30,15 @@ with_mock_dir("catalogue2", { skip_on_ci() expect_type( - restatis::gen_catalogue(code = "41141", - detailed = FALSE, - category = "statistics", - error.ignore = FALSE), + gen_catalogue(code = "41141", + detailed = FALSE, + category = "statistics", + error.ignore = FALSE, + database = "genesis"), type = "list") + }) + }) #------------------------------------------------------------------------------- @@ -43,10 +50,11 @@ with_mock_dir("catalogue3", { skip_on_ci() expect_error( - restatis::gen_catalogue(code = "41141", - detailed = FALSE, - category = "cubes", - error.ignore = FALSE), + gen_catalogue(code = "41141", + detailed = FALSE, + category = "cubes", + error.ignore = FALSE, + database = "genesis"), regexp = "No object found for your request") }) }) @@ -59,13 +67,15 @@ with_mock_dir("catalogue4", { skip_on_cran() skip_on_ci() - res <- restatis::gen_catalogue(code = "611*", - detailed = FALSE, - error.ignore = TRUE) + res <- gen_catalogue(code = "611*", + detailed = FALSE, + error.ignore = TRUE, + database = "genesis") expect_equal(length(res), 3) }) + }) with_mock_dir("catalogue5", { @@ -75,7 +85,11 @@ with_mock_dir("catalogue5", { skip_on_ci() expect_message( - restatis::gen_catalogue(code = "711*", detailed = TRUE, category = "tables", error.ignore = TRUE), + gen_catalogue(code = "711*", + detailed = TRUE, + category = "tables", + error.ignore = TRUE, + database = "genesis"), regexp = "Use 'error.ignore = FALSE' to stop the function at the point where no object could be found.") }) }) @@ -86,13 +100,19 @@ with_mock_dir("catalogue5", { test_that("gen_catalogue function errors on multiple codes", { expect_error( - restatis::gen_catalogue(code = c("611*", "711*"), detailed = TRUE, category = "tables"), + gen_catalogue(code = c("611*", "711*"), + detailed = TRUE, + category = "tables", + database = "genesis"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_catalogue function errors on numeric code param", { expect_error( - restatis::gen_catalogue(code = 12345, detailed = TRUE, category = "tables"), + gen_catalogue(code = 12345, + detailed = TRUE, + category = "tables", + database = "genesis"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -100,14 +120,19 @@ test_that("gen_catalogue function errors on numeric code param", { test_that("gen_catalogue function errors on wrong categories", { expect_error( - restatis::gen_catalogue(code = "611*", detailed = TRUE, category = "variables"), - regexp = "Available categories are tables, statistics, and cubes.") + gen_catalogue(code = "611*", + detailed = TRUE, + category = "variables", + database = "genesis"), + regexp = "Available categories are 'tables', 'statistics', and 'cubes'.") }) test_that("gen_catalogue function errors on too many categories", { expect_error( - restatis::gen_catalogue(code = "611*", detailed = TRUE, - category = c("variables", "statistics", "tables", "cubes")), + gen_catalogue(code = "611*", + detailed = TRUE, + category = c("variables", "statistics", "tables", "cubes"), + database = "genesis"), regexp = "Parameter 'category' has to have a length of 1 to 3.") }) @@ -115,7 +140,10 @@ test_that("gen_catalogue function errors on too many categories", { test_that("gen_catalogue function errors on numeric detailed param", { expect_error( - restatis::gen_catalogue(code = "711*", detailed = 1, category = "tables"), + gen_catalogue(code = "711*", + detailed = 1, + category = "tables", + database = "genesis"), regexp = "Parameter 'detailed' has to be of type 'logical' and of length 1.") }) @@ -126,24 +154,23 @@ with_mock_dir("catalogue6", { skip_on_ci() expect_message( - restatis::gen_catalogue(code = "711*", detailed = FALSE, category = "tables"), + gen_catalogue(code = "711*", + detailed = FALSE, + category = "tables", + database = "genesis"), regexp = "Use 'detailed = TRUE' to obtain the complete output.") }) }) #------------------------------------------------------------------------------- -# test_that("gen_catalogue function errors on numeric sortcriterion param", { -# expect_error( -# restatis::gen_catalogue(code = "711*", detailed = TRUE, category = "tables", sortcriterion = c(1, 2)), -# regexp = "Parameter 'sortcriterion' has to be of type 'character'") -# }) - -#------------------------------------------------------------------------------- - test_that("gen_catalogue function errors on wrong error.ignore param", { expect_error( - restatis::gen_catalogue(code = "711*", detailed = TRUE, category = "tables", error.ignore = 1), + gen_catalogue(code = "711*", + detailed = TRUE, + category = "tables", + error.ignore = 1, + database = "genesis"), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_cube.R b/tests/testthat/test_gen_cube.R index 7d47c92..1704a53 100644 --- a/tests/testthat/test_gen_cube.R +++ b/tests/testthat/test_gen_cube.R @@ -20,6 +20,7 @@ with_mock_dir("cube1", { expect_true("spec" %in% names(attrs)) }) + }) #------------------------------------------------------------------------------- diff --git a/tests/testthat/test_gen_find.R b/tests/testthat/test_gen_find.R index ad07d9f..bfe9c5f 100644 --- a/tests/testthat/test_gen_find.R +++ b/tests/testthat/test_gen_find.R @@ -8,10 +8,11 @@ with_mock_dir("find1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_find(term = "forst", - detailed = TRUE, - ordering = TRUE, - error.ignore = FALSE) + result <- gen_find(term = "forst", + detailed = TRUE, + ordering = TRUE, + error.ignore = FALSE, + database = "genesis") expect_type(result, type = "list") @@ -27,13 +28,17 @@ with_mock_dir("find1", { #------------------------------------------------------------------------------- with_mock_dir("find2_fake", { - test_that("gen_find errors if there is an error code", { + test_that("gen_find errors if there is an error code (fake response)", { + + # Here, the mockfile needs to be altered: + # The Status$Code needs, e.g., 999 + # The Status$Content needs to be "test error message" skip_on_cran() skip_on_ci() expect_error( - restatis::gen_find(term = "bus", error.ignore = TRUE), + gen_find(term = "bus", error.ignore = TRUE, database = "genesis"), regexp = "test error message") }) }) @@ -47,9 +52,11 @@ with_mock_dir("find3", { skip_on_ci() expect_message( - restatis::gen_find(term = "zensus", error.ignore = TRUE), + gen_find(term = "zensus", error.ignore = TRUE, database = "genesis"), regexp = "Use 'detailed = TRUE' to obtain the complete output.") + }) + }) #------------------------------------------------------------------------------- @@ -58,30 +65,30 @@ with_mock_dir("find3", { test_that("gen_find function errors on numeric term param", { expect_error( - restatis::gen_find(term = 12345, detailed = TRUE, category = "tables"), + gen_find(term = 12345, detailed = TRUE, category = "tables", database = "genesis"), regexp = "Parameter 'term' has to be of type 'character'.") }) test_that("gen_find function errors on wrong category", { expect_error( - restatis::gen_find(term = "bus", detailed = TRUE, category = "table"), - regexp = "Available categories are all, tables, statistics, variables, and cubes.") + gen_find(term = "bus", detailed = TRUE, category = "table", database = "genesis"), + regexp = "Available categories for parameter 'category' for 'genesis' database are 'all', 'tables', 'statistics', 'variables', and 'cubes'.") }) test_that("gen_find function errors on wrong detailed param", { expect_error( - restatis::gen_find(term = "bus", detailed = 1, category = "tables"), + gen_find(term = "bus", detailed = 1, category = "tables", database = "genesis"), regexp = "Parameter 'detailed' has to be of type 'logical' and of length 1.") }) test_that("gen_find function errors on wrong ordering param", { expect_error( - restatis::gen_find(term = "bus", ordering = 1, category = "tables"), + gen_find(term = "bus", ordering = 1, category = "tables", database = "genesis"), regexp = "Parameter 'ordering' has to be of type 'logical' and of length 1.") }) test_that("gen_find function errors on wrong error.ignore param", { expect_error( - restatis::gen_find(term = "bus", error.ignore = 1, category = "tables"), + gen_find(term = "bus", error.ignore = 1, category = "tables", database = "genesis"), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_logincheck.R b/tests/testthat/test_gen_logincheck.R new file mode 100644 index 0000000..a3a1d3c --- /dev/null +++ b/tests/testthat/test_gen_logincheck.R @@ -0,0 +1,21 @@ +#------------------------------------------------------------------------------- +# Test for expected output & API calls ---- +#------------------------------------------------------------------------------- + +with_mock_dir("logincheck1", { + + test_that("gen_logincheck errors when the login failed (fake response)", { + + # The mockfile needs to be altered with respect to the body/content + # It needs to include the string "Ein Fehler ist aufgetreten" + # So that the below error message is displayed + + skip_on_cran() + skip_on_ci() + + expect_error(gen_logincheck("genesis"), + regexp = "There seems to be an issue with the authentication process") + + }) + +}, simplify = FALSE) diff --git a/tests/testthat/test_gen_meta_data.R b/tests/testthat/test_gen_meta_data.R index 7007e29..d93636d 100644 --- a/tests/testthat/test_gen_meta_data.R +++ b/tests/testthat/test_gen_meta_data.R @@ -8,8 +8,9 @@ with_mock_dir("meta1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_metadata(code = "11111-0001", - category = "Table") + result <- gen_metadata(code = "11111-0001", + category = "table", + database = "genesis") expect_type(result, type = "list") @@ -20,20 +21,27 @@ with_mock_dir("meta1", { expect_true("Updated" %in% names(attrs)) expect_true("Language" %in% names(attrs)) expect_true("Copyright" %in% names(attrs)) + }) + }) #------------------------------------------------------------------------------- with_mock_dir("meta2_fake", { - test_that("gen_metadata errors if there is an error code", { + test_that("gen_metadata errors if there is an error code (fake response)", { + + # Here, the mockfile needs to be altered: + # Status$Code = 999 + # Status$Content = "test error message" skip_on_cran() skip_on_ci() expect_error( - restatis::gen_metadata(code = "1*", - category = "Cube"), + gen_metadata(code = "1*", + category = "cube", + database = "genesis"), regexp = "test error message") }) }) @@ -47,9 +55,10 @@ with_mock_dir("meta3", { skip_on_ci() expect_message( - restatis::gen_metadata(code = "11111-0001", - category = "Table", - error.ignore = TRUE), + gen_metadata(code = "11111-0001", + category = "table", + error.ignore = TRUE, + database = "genesis"), regexp = "Use 'error.ignore = FALSE' to stop the function at the point where no object could be found.") }) }) @@ -60,24 +69,25 @@ with_mock_dir("meta3", { test_that("gen_metadata function errors on numeric code param", { expect_error( - restatis::gen_metadata(code = 12345, category = "Table"), + gen_metadata(code = 12345, category = "Table", database = "genesis"), regexp = "Parameter 'code' has to be of type 'character'.") }) test_that("gen_metadata function errors on multiple categories", { expect_error( - restatis::gen_metadata(code = "12345", category = c("Table", "Cube")), + gen_metadata(code = "12345", category = c("Table", "Cube"), database = "genesis"), regexp = "Parameter 'category' must have a length of 1. Please specify the category.") }) test_that("gen_metadata function errors on wrong category", { expect_error( - restatis::gen_metadata(code = "11111", category = "table"), - regexp = "Available categories are Cube, Table, Statistic, Variable, and Value.") + gen_metadata(code = "11111", category = "Table", database = "genesis"), + regexp = "Available categories for parameter 'category' for 'genesis' database are 'cube', 'table', 'statistic', 'variable', and 'value'") + }) test_that("gen_metadata function errors on wrong error.ignore param", { expect_error( - restatis::gen_metadata(code = "11111", error.ignore = 1, category = "Table"), + gen_metadata(code = "11111", error.ignore = 1, category = "table", database = "genesis"), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_modified_data.R b/tests/testthat/test_gen_modified_data.R index 2e7abe0..37114a1 100644 --- a/tests/testthat/test_gen_modified_data.R +++ b/tests/testthat/test_gen_modified_data.R @@ -8,10 +8,11 @@ with_mock_dir("modified1", { skip_on_cran() skip_on_ci() - expect_type( - restatis::gen_modified_data(code = "61111", date = "01.01.2022"), - type = "list") + expect_type(gen_modified_data(code = "61111", date = "01.01.2022", database = "genesis"), + type = "list") + }) + }) with_mock_dir("modified2", { @@ -21,11 +22,11 @@ with_mock_dir("modified2", { skip_on_ci() expect_message( - restatis::gen_modified_data(code = "61111"), - regexp = "Please note that this date is calculated automatically and may differ - from manually entered data. Manually entered data must have - the format DD.MM.YYYY.") + gen_modified_data(code = "61111", database = "genesis"), + regexp = "Please note that per default the current system date is used.") + }) + }) #------------------------------------------------------------------------------- @@ -36,7 +37,7 @@ with_mock_dir("modified3", { skip_on_cran() skip_on_ci() - result <- restatis::gen_modified_data(code = "61111", date = "01.01.2022") + result <- gen_modified_data(code = "61111", date = "01.01.2022", database = "genesis") attrs <- attributes(result) @@ -47,18 +48,23 @@ with_mock_dir("modified3", { expect_true("Copyright" %in% names(attrs)) }) + }) with_mock_dir("modified4_fake", { - test_that("gen_modified_data function warns if there is a non-zero status code", { + test_that("gen_modified_data function warns if there is a non-zero status code (fake response)", { skip_on_cran() skip_on_ci() - expect_warning( - restatis::gen_modified_data(code = "61234", date = "01.01.2022"), - regexp = "test warning message") + expect_message( + gen_modified_data(code = "61234", + date = "01.01.2022", + database = "genesis"), + regexp = "No modified objects found for your code and date in genesis") + }) + }) #------------------------------------------------------------------------------- @@ -67,13 +73,13 @@ with_mock_dir("modified4_fake", { test_that("gen_modified_data errors on misspecified dates", { expect_error( - restatis::gen_modified_data(code = "61111", date = "1.1.2022"), + gen_modified_data(code = "61111", date = "1.1.2022"), regexp = "it has to be of length 1 and format DD.MM.YYYY") }) test_that("gen_modified_data errors on misspecified dates", { expect_error( - restatis::gen_modified_data(code = "61111", date = 23456), + gen_modified_data(code = "61111", date = 23456), regexp = "'date', it has to be of type 'character'.") }) @@ -81,13 +87,13 @@ test_that("gen_modified_data errors on misspecified dates", { test_that("gen_modified_data errors on multiple codes", { expect_error( - restatis::gen_modified_data(code = c("611*", "711*")), + gen_modified_data(code = c("611*", "711*")), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_modified_data function errors on numeric code param", { expect_error( - restatis::gen_modified_data(code = 12345), + gen_modified_data(code = 12345), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -95,6 +101,6 @@ test_that("gen_modified_data function errors on numeric code param", { test_that("gen_modified_data function errors on wrong type value", { expect_error( - restatis::gen_modified_data(code = "12345", type = "diesdasananas"), - regexp = "Available categories for parameter 'type' are 'tables', 'statistics', 'statistic updates', and 'all'.") + gen_modified_data(code = "12345", type = "diesdasananas"), + regexp = "'arg' should be one of") }) diff --git a/tests/testthat/test_gen_objects2stat.R b/tests/testthat/test_gen_objects2stat.R index f1e4897..9ac5e1d 100644 --- a/tests/testthat/test_gen_objects2stat.R +++ b/tests/testthat/test_gen_objects2stat.R @@ -8,7 +8,7 @@ with_mock_dir("xy_statistic1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_objects2stat(code = "61111") + result <- gen_objects2stat(code = "61111", database = "genesis") expect_type(result, type = "list") @@ -30,8 +30,9 @@ with_mock_dir("xy_statistic2", { skip_on_cran() skip_on_ci() - expect_s3_class(restatis::gen_objects2stat(code = "61111", - category = "tables"), + expect_s3_class(gen_objects2stat(code = "61111", + category = "tables", + database = "genesis"), class = "data.frame") }) }) @@ -42,13 +43,13 @@ with_mock_dir("xy_statistic2", { test_that("gen_objects2stat function errors on multiple codes", { expect_error( - restatis::gen_objects2stat(code = c("611*", "711*"), detailed = TRUE, category = "tables"), + gen_objects2stat(code = c("611*", "711*"), detailed = TRUE, category = "tables", database = "genesis"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_objects2stat function errors on numeric code param", { expect_error( - restatis::gen_objects2stat(code = 12345, detailed = TRUE, category = "tables"), + gen_objects2stat(code = 12345, detailed = TRUE, category = "tables", database = "genesis"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -56,14 +57,14 @@ test_that("gen_objects2stat function errors on numeric code param", { test_that("gen_objects2stat function errors on wrong categories", { expect_error( - restatis::gen_objects2stat(code = "611*", detailed = TRUE, category = "statistics"), - regexp = "Available categories are tables, variables, and cubes.") + gen_objects2stat(code = "611*", detailed = TRUE, category = "statistics", database = "genesis"), + regexp = "Available categories are 'tables', 'variables', and 'cubes'.") }) test_that("gen_objects2stat function errors on too many categories", { expect_error( - restatis::gen_objects2stat(code = "611*", detailed = TRUE, - category = c("variables", "statistics", "tables", "cubes")), + gen_objects2stat(code = "611*", detailed = TRUE, + category = c("variables", "statistics", "tables", "cubes"), database = "genesis"), regexp = "Parameter 'category' has to have a length of 1 to 3.") }) @@ -71,7 +72,7 @@ test_that("gen_objects2stat function errors on too many categories", { test_that("gen_objects2stat function errors on numeric detailed param", { expect_error( - restatis::gen_objects2stat(code = "711*", detailed = 1, category = "tables"), + gen_objects2stat(code = "711*", detailed = 1, category = "tables", database = "genesis"), regexp = "Parameter 'detailed' has to be of type 'logical' and of length 1.") }) @@ -82,22 +83,24 @@ with_mock_dir("xy_statistic3", { skip_on_ci() expect_message( - restatis::gen_objects2stat(code = "61111", detailed = FALSE, category = "tables"), + gen_objects2stat(code = "61111", detailed = FALSE, category = "tables", database = "genesis"), regexp = "Use 'detailed = TRUE' to obtain the complete output.") + }) + }) #------------------------------------------------------------------------------- # test_that("gen_objects2stat function errors on wrong sort param", { # expect_error( -# restatis::gen_objects2stat(code = "61111", sortcriterion = "date"), +# gen_objects2stat(code = "61111", sortcriterion = "date"), # regexp = "Parameter 'sortcriterion' has to be 'code' or 'content'.") # }) # test_that("gen_objects2stat function errors on wrong sort param type", { # expect_error( -# restatis::gen_objects2stat(code = "6111*", sortcriterion = 123), +# gen_objects2stat(code = "6111*", sortcriterion = 123), # regexp = "Parameter 'sortcriterion' has to be of type 'character'.") # }) @@ -105,6 +108,6 @@ with_mock_dir("xy_statistic3", { test_that("gen_objects2stat function errors on wrong error.ignore param", { expect_error( - restatis::gen_objects2stat(code = "711*", error.ignore = 1), + gen_objects2stat(code = "711*", error.ignore = 1), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_objects2var.R b/tests/testthat/test_gen_objects2var.R index fb4b31d..7a39a2a 100644 --- a/tests/testthat/test_gen_objects2var.R +++ b/tests/testthat/test_gen_objects2var.R @@ -8,7 +8,7 @@ with_mock_dir("xy_variable1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_objects2var(code = "DLAND") + result <- gen_objects2var(code = "DLAND", database = "genesis") expect_type(result, type = "list") @@ -25,15 +25,19 @@ with_mock_dir("xy_variable1", { #------------------------------------------------------------------------------- with_mock_dir("xy_variable2", { + test_that("gen_objects2var does return a data.frame for a single category", { skip_on_cran() skip_on_ci() - expect_s3_class(restatis::gen_objects2var(code = "DLAND", - category = "tables"), + expect_s3_class(gen_objects2var(code = "DLAND", + category = "tables", + database = "genesis"), class = "data.frame") + }) + }) #------------------------------------------------------------------------------- @@ -42,13 +46,13 @@ with_mock_dir("xy_variable2", { test_that("gen_objects2var function errors on multiple codes", { expect_error( - restatis::gen_objects2var(code = c("DLAND", "LAND"), detailed = TRUE, category = "tables"), + gen_objects2var(code = c("DLAND", "LAND"), detailed = TRUE, category = "tables"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_objects2var function errors on numeric code param", { expect_error( - restatis::gen_objects2var(code = 12345, detailed = TRUE, category = "tables"), + gen_objects2var(code = 12345, detailed = TRUE, category = "tables"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -56,13 +60,13 @@ test_that("gen_objects2var function errors on numeric code param", { test_that("gen_objects2var function errors on wrong categories", { expect_error( - restatis::gen_objects2var(code = "DLAND", detailed = TRUE, category = "variables"), - regexp = "Available categories are tables, statistics, and cubes.") + gen_objects2var(code = "DLAND", detailed = TRUE, category = "variables", database = "genesis"), + regexp = "Available categories are 'tables', 'statistics', and 'cubes'.") }) test_that("gen_objects2var function errors on too many categories", { expect_error( - restatis::gen_objects2var(code = "611*", detailed = TRUE, + gen_objects2var(code = "611*", detailed = TRUE, category = c("variables", "statistics", "tables", "cubes")), regexp = "Parameter 'category' has to have a length of 1 to 3.") }) @@ -71,7 +75,7 @@ test_that("gen_objects2var function errors on too many categories", { test_that("gen_objects2var function errors on numeric detailed param", { expect_error( - restatis::gen_objects2var(code = "DLAND", detailed = 1, category = "tables"), + gen_objects2var(code = "DLAND", detailed = 1, category = "tables"), regexp = "Parameter 'detailed' has to be of type 'logical' and of length 1.") }) @@ -82,7 +86,7 @@ with_mock_dir("xy_variable3", { skip_on_ci() expect_message( - restatis::gen_objects2var(code = "DLAND", detailed = FALSE, category = "tables"), + gen_objects2var(code = "DLAND", detailed = FALSE, category = "tables", database = "genesis"), regexp = "Use 'detailed = TRUE' to obtain the complete output.") }) }) @@ -91,13 +95,13 @@ with_mock_dir("xy_variable3", { # test_that("gen_objects2var function errors on wrong sort param", { # expect_error( -# restatis::gen_objects2var(code = "DLAND", sortcriterion = "date"), +# gen_objects2var(code = "DLAND", sortcriterion = "date"), # regexp = "Parameter 'sortcriterion' has to be 'code' or 'content'.") # }) # test_that("gen_objects2var function errors on wrong sort param type", { # expect_error( -# restatis::gen_objects2var(code = "DLAND", sortcriterion = 123), +# gen_objects2var(code = "DLAND", sortcriterion = 123), # regexp = "Parameter 'sortcriterion' has to be of type 'character'.") # }) @@ -105,6 +109,6 @@ with_mock_dir("xy_variable3", { test_that("gen_objects2var function errors on wrong error.ignore param", { expect_error( - restatis::gen_objects2var(code = "7DLAND", error.ignore = 1), + gen_objects2var(code = "7DLAND", error.ignore = 1), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_search_vars.R b/tests/testthat/test_gen_search_vars.R index 99f5f3a..a0ca3b8 100644 --- a/tests/testthat/test_gen_search_vars.R +++ b/tests/testthat/test_gen_search_vars.R @@ -10,7 +10,8 @@ with_mock_dir("searchvars1", { result <- gen_search_vars(code = NULL, sortcriterion = c("code", "content"), - error.ignore = FALSE) + error.ignore = FALSE, + database = "genesis") expect_type(result, type = "list") @@ -27,17 +28,19 @@ with_mock_dir("searchvars1", { #------------------------------------------------------------------------------- -with_mock_dir("searchvars2_fake", { - test_that("gen_search_vars returns a list element", { +with_mock_dir("searchvars2", { + test_that("gen_search_vars errors if there is no object found", { skip_on_cran() skip_on_ci() expect_error( gen_search_vars(code = "74111", - sortcriterion = c("code", "content"), - error.ignore = FALSE), - regexp = "test error message") + sortcriterion = c("code", "content"), + error.ignore = FALSE, + database = "genesis", + language = "en"), + regexp = "No object found for your request.") }) }) @@ -48,13 +51,13 @@ with_mock_dir("searchvars2_fake", { test_that("gen_search_vars function errors on multiple codes", { expect_error( - restatis::gen_search_vars(code = c("611*", "711*"), detailed = TRUE, category = "tables"), + gen_search_vars(code = c("611*", "711*"), detailed = TRUE, category = "tables"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_search_vars function errors on numeric code param", { expect_error( - restatis::gen_search_vars(code = 12345, detailed = TRUE, category = "tables"), + gen_search_vars(code = 12345, detailed = TRUE, category = "tables"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -62,13 +65,13 @@ test_that("gen_search_vars function errors on numeric code param", { test_that("gen_search_vars function errors on wrong sort param", { expect_error( - restatis::gen_search_vars(code = "61111", sortcriterion = "date"), + gen_search_vars(code = "61111", sortcriterion = "date"), regexp = "Parameter 'sortcriterion' has to be 'code' or 'content'.") }) test_that("gen_search_vars function errors on wrong sort param type", { expect_error( - restatis::gen_search_vars(code = "6111*", sortcriterion = 123), + gen_search_vars(code = "6111*", sortcriterion = 123), regexp = "Parameter 'sortcriterion' has to be of type 'character'.") }) @@ -76,7 +79,7 @@ test_that("gen_search_vars function errors on wrong sort param type", { test_that("gen_search_vars function errors on wrong error.ignore param", { expect_error( - restatis::gen_search_vars(code = "711*", error.ignore = 1), + gen_search_vars(code = "711*", error.ignore = 1), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/test_gen_table.R b/tests/testthat/test_gen_table.R index cc5127a..7b9fe48 100644 --- a/tests/testthat/test_gen_table.R +++ b/tests/testthat/test_gen_table.R @@ -9,7 +9,9 @@ with_mock_dir("table1", { skip_on_cran() skip_on_ci() - result <- gen_table("61111-0001", startyear = 2019) + result <- gen_table("61111-0001", + startyear = 2019, + database = "genesis") expect_s3_class(result, class = "data.frame") @@ -20,6 +22,7 @@ with_mock_dir("table1", { expect_true("spec" %in% names(attrs)) }) + }) #------------------------------------------------------------------------------- @@ -28,10 +31,10 @@ with_mock_dir("table1", { test_that("gen_table errors on wrong year parameters", { - expect_error(gen_table("61111-0004", startyear = 1893), + expect_error(gen_table("61111-0004", startyear = 1893, database = "genesis"), regexp = "The parameter 'year' has been misspecified") - expect_error(gen_table("61111-0004", startyear = "1893"), + expect_error(gen_table("61111-0004", startyear = "1893", database = "genesis"), regexp = "The parameter 'year' has been misspecified") }) diff --git a/tests/testthat/test_gen_val2var.R b/tests/testthat/test_gen_val2var.R index 7295b80..c11ff23 100644 --- a/tests/testthat/test_gen_val2var.R +++ b/tests/testthat/test_gen_val2var.R @@ -8,12 +8,16 @@ with_mock_dir("values1", { skip_on_cran() skip_on_ci() - expect_error( - restatis::gen_val2var(code = "61111", - detailed = TRUE, - sortcriterion = "code"), - regexp = "No object found for your request.") + expect_message( + gen_val2var(code = "61111", + detailed = TRUE, + sortcriterion = "code", + database = "genesis", + language = "en"), + regexp = "No objects found.") + }) + }) # #------------------------------------------------------------------------------- @@ -24,9 +28,10 @@ with_mock_dir("values2", { skip_on_cran() skip_on_ci() - result <- restatis::gen_val2var(code = "DLAND", - detailed = TRUE, - sortcriterion = "code") + result <- gen_val2var(code = "DLAND", + detailed = TRUE, + sortcriterion = "code", + database = "genesis") expect_type(result, type = "list") @@ -46,13 +51,13 @@ with_mock_dir("values2", { test_that("gen_val2var function errors on multiple codes", { expect_error( - restatis::gen_val2var(code = c("611*", "711*"), detailed = TRUE, category = "tables"), + gen_val2var(code = c("611*", "711*"), detailed = TRUE, category = "tables", database = "genesis"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_val2var function errors on numeric code param", { expect_error( - restatis::gen_val2var(code = 12345, detailed = TRUE, category = "tables"), + gen_val2var(code = 12345, detailed = TRUE, category = "tables", "genesis"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -60,13 +65,13 @@ test_that("gen_val2var function errors on numeric code param", { test_that("gen_val2var function errors on wrong sort param", { expect_error( - restatis::gen_val2var(code = "61111", sortcriterion = "date"), + gen_val2var(code = "61111", sortcriterion = "date", database = "genesis"), regexp = "Parameter 'sortcriterion' has to be 'code' or 'content'.") }) test_that("gen_val2var function errors on wrong sort param type", { expect_error( - restatis::gen_val2var(code = "6111*", sortcriterion = 123), + gen_val2var(code = "6111*", sortcriterion = 123, database = "genesis"), regexp = "Parameter 'sortcriterion' has to be of type 'character'.") }) @@ -74,6 +79,7 @@ test_that("gen_val2var function errors on wrong sort param type", { test_that("gen_val2var function errors on wrong error.ignore param", { expect_error( - restatis::gen_val2var(code = "711*", error.ignore = 1), + gen_val2var(code = "711*", error.ignore = 1, database = "genesis"), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) + diff --git a/tests/testthat/test_gen_var2stat.R b/tests/testthat/test_gen_var2stat.R index b46132a..7514830 100644 --- a/tests/testthat/test_gen_var2stat.R +++ b/tests/testthat/test_gen_var2stat.R @@ -8,9 +8,10 @@ with_mock_dir("variables1", { skip_on_cran() skip_on_ci() - result <- restatis::gen_var2stat(code = "61111", - detailed = TRUE, - sortcriterion = "code") + result <- gen_var2stat(code = "61111", + detailed = TRUE, + sortcriterion = "code", + database = "genesis") expect_type(result, type = "list") @@ -27,13 +28,17 @@ with_mock_dir("variables1", { #------------------------------------------------------------------------------- with_mock_dir("variables2_fake", { - test_that("gen_var2stat function errors if there is a problem", { + test_that("gen_var2stat function errors if there is a problem (fake response)", { + + # Here, it is necessary to change the mockfile: + # Change the Status$Code to, e.g., 999 + # Change the Status$Content to contain "test error message" skip_on_cran() skip_on_ci() expect_error( - restatis::gen_var2stat(code = "74111"), + gen_var2stat(code = "74111", database = "genesis"), regexp = "test error message") }) }) @@ -44,13 +49,13 @@ with_mock_dir("variables2_fake", { test_that("gen_var2stat function errors on multiple codes", { expect_error( - restatis::gen_var2stat(code = c("611*", "711*"), detailed = TRUE, category = "tables"), + gen_var2stat(code = c("611*", "711*"), detailed = TRUE, category = "tables"), regexp = "Parameter 'code' must be a single string.") }) test_that("gen_var2stat function errors on numeric code param", { expect_error( - restatis::gen_var2stat(code = 12345, detailed = TRUE, category = "tables"), + gen_var2stat(code = 12345, detailed = TRUE, category = "tables"), regexp = "Parameter 'code' has to be of type 'character'.") }) @@ -58,7 +63,7 @@ test_that("gen_var2stat function errors on numeric code param", { test_that("gen_var2stat function errors on numeric detailed param", { expect_error( - restatis::gen_var2stat(code = "711*", detailed = 1, category = "tables"), + gen_var2stat(code = "711*", detailed = 1, category = "tables"), regexp = "Parameter 'detailed' has to be of type 'logical' and of length 1.") }) @@ -69,7 +74,7 @@ with_mock_dir("variables3", { skip_on_ci() expect_message( - restatis::gen_var2stat(code = "61111", detailed = FALSE, category = "tables"), + gen_var2stat(code = "61111", detailed = FALSE, category = "tables", database = "genesis"), regexp = "Use 'detailed = TRUE' to obtain the complete output.") }) }) @@ -78,13 +83,13 @@ with_mock_dir("variables3", { test_that("gen_var2stat function errors on wrong sort param", { expect_error( - restatis::gen_var2stat(code = "61111", sortcriterion = "date"), + gen_var2stat(code = "61111", sortcriterion = "date"), regexp = "Parameter 'sortcriterion' has to be 'code' or 'content'.") }) test_that("gen_var2stat function errors on wrong sort param type", { expect_error( - restatis::gen_var2stat(code = "6111*", sortcriterion = 123), + gen_var2stat(code = "6111*", sortcriterion = 123), regexp = "Parameter 'sortcriterion' has to be of type 'character'.") }) @@ -92,6 +97,6 @@ test_that("gen_var2stat function errors on wrong sort param type", { test_that("gen_var2stat function errors on wrong error.ignore param", { expect_error( - restatis::gen_var2stat(code = "711*", error.ignore = 1), + gen_var2stat(code = "711*", error.ignore = 1), regexp = "Parameter 'error.ignore' has to be of type 'logical' and of length 1.") }) diff --git a/tests/testthat/values1/api/catalogue/values2variable-886f37.json b/tests/testthat/values1/api/catalogue/values2variable-8361bb.json similarity index 50% rename from tests/testthat/values1/api/catalogue/values2variable-886f37.json rename to tests/testthat/values1/api/catalogue/values2variable-8361bb.json index 40ad525..f38f26e 100644 --- a/tests/testthat/values1/api/catalogue/values2variable-886f37.json +++ b/tests/testthat/values1/api/catalogue/values2variable-8361bb.json @@ -4,8 +4,8 @@ "Method": "values2variable" }, "Status": { - "Code": 104, - "Content": "Es gibt keine Objekte zum angegebenen Selektionskriterium", + "Code": 103, + "Content": "No objects found. (At least one parameter contains invalid values. It was changed to perform the service.: sortcriterion)", "Type": "Information" }, "Parameter": { @@ -13,12 +13,12 @@ "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", + "area": "all", + "searchcriterion": "code", + "sortcriterion": "code", "pagelength": "100", - "language": "de" + "language": "en" }, "List": null, - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Federal Statistical Office, Wiesbaden 2024" } diff --git a/tests/testthat/values2/api/catalogue/values2variable-cb5890.json b/tests/testthat/values2/api/catalogue/values2variable-d9d8dc.json similarity index 87% rename from tests/testthat/values2/api/catalogue/values2variable-cb5890.json rename to tests/testthat/values2/api/catalogue/values2variable-d9d8dc.json index d7bbd92..77d8496 100644 --- a/tests/testthat/values2/api/catalogue/values2variable-cb5890.json +++ b/tests/testthat/values2/api/catalogue/values2variable-d9d8dc.json @@ -4,16 +4,16 @@ "Method": "values2variable" }, "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" + "Code": 22, + "Content": "erfolgreich (Mindestens ein Parameter enthält ungültige Werte. Er wurde angepasst, um den Service starten zu können.: sortcriterion)", + "Type": "Warnung" }, "Parameter": { "username": "********************", "password": "********************", "name": "DLAND", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "pagelength": "100", @@ -22,7 +22,7 @@ "List": [ { "Code": "08", - "Content": "Baden-W?rttemberg", + "Content": "Baden-Württemberg", "Variables": "9", "Information": "false" }, @@ -77,7 +77,7 @@ { "Code": "05", "Content": "Nordrhein-Westfalen", - "Variables": "10", + "Variables": "9", "Information": "false" }, { @@ -112,10 +112,10 @@ }, { "Code": "16", - "Content": "Th?ringen", + "Content": "Thüringen", "Variables": "11", "Information": "false" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/variables1/api/catalogue/variables2statistic-476d62.json b/tests/testthat/variables1/api/catalogue/variables2statistic-49290a.json similarity index 87% rename from tests/testthat/variables1/api/catalogue/variables2statistic-476d62.json rename to tests/testthat/variables1/api/catalogue/variables2statistic-49290a.json index 2dd65d8..6030c3e 100644 --- a/tests/testthat/variables1/api/catalogue/variables2statistic-476d62.json +++ b/tests/testthat/variables1/api/catalogue/variables2statistic-49290a.json @@ -4,16 +4,16 @@ "Method": "variables2statistic" }, "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" + "Code": 22, + "Content": "erfolgreich (Mindestens ein Parameter enthält ungültige Werte. Er wurde angepasst, um den Service starten zu können.: sortcriterion)", + "Type": "Warnung" }, "Parameter": { "username": "********************", "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "type": "Alle", @@ -66,14 +66,14 @@ { "Code": "DINSG", "Content": "Deutschland insgesamt", - "Type": "r?umlich insgesamt", + "Type": "räumlich insgesamt", "Values": "-1", "Information": "false" }, { "Code": "DLAND", - "Content": "Bundesl?nder", - "Type": "r?umlich", + "Content": "Bundesländer", + "Type": "räumlich", "Values": "-1", "Information": "true" }, @@ -113,5 +113,5 @@ "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/variables2_fake/api/catalogue/variables2statistic-3d1ffb.json b/tests/testthat/variables2_fake/api/catalogue/variables2statistic-3d1ffb.json deleted file mode 100644 index 8cc6fb9..0000000 --- a/tests/testthat/variables2_fake/api/catalogue/variables2statistic-3d1ffb.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "variables2statistic" - }, - "Status": { - "Code": 100, - "Content": "test error message", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "74111", - "selection": "", - "area": "oeffentlich", - "searchcriterion": "Code", - "sortcriterion": "Code", - "type": "Alle", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "BES003", - "Content": "Besch?ftigte im ?ffentlichen Dienst", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "BES019", - "Content": "Besch?ftigte im Aufgabenbereich Polizei", - "Type": "Wert", - "Values": "-1", - "Information": "false" - }, - { - "Code": "BES020", - "Content": "Besch. im Aufg.ber. Polizei (Vollzeit?quivalente)", - "Type": "Wert", - "Values": "-1", - "Information": "true" - }, - { - "Code": "BESBR2", - "Content": "Besch?ftigungsbereich", - "Type": "sachlich", - "Values": "-1", - "Information": "false" - }, - { - "Code": "BESBR3", - "Content": "Besch?ftigungsbereich", - "Type": "sachlich", - "Values": "-1", - "Information": "false" - }, - { - "Code": "BESUM4", - "Content": "Besch?ftigungsumfang", - "Type": "sachlich", - "Values": "-1", - "Information": "true" - }, - { - "Code": "DINSG", - "Content": "Deutschland insgesamt", - "Type": "r?umlich insgesamt", - "Values": "-1", - "Information": "false" - }, - { - "Code": "DLAND", - "Content": "Bundesl?nder", - "Type": "r?umlich", - "Values": "-1", - "Information": "true" - }, - { - "Code": "DSTVS1", - "Content": "Dienstverh?ltnis (?ffentlicher Dienst)", - "Type": "sachlich", - "Values": "-1", - "Information": "false" - }, - { - "Code": "DSTVS2", - "Content": "Dienstverh?ltnis", - "Type": "sachlich", - "Values": "-1", - "Information": "false" - }, - { - "Code": "GES", - "Content": "Geschlecht", - "Type": "sachlich", - "Values": "-1", - "Information": "false" - }, - { - "Code": "STAG", - "Content": "Stichtag", - "Type": "zeitidentifizierend", - "Values": "-1", - "Information": "false" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/variables2_fake/api/catalogue/variables2statistic-e15459.json b/tests/testthat/variables2_fake/api/catalogue/variables2statistic-e15459.json new file mode 100644 index 0000000..0e73082 --- /dev/null +++ b/tests/testthat/variables2_fake/api/catalogue/variables2statistic-e15459.json @@ -0,0 +1,11 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "variables2statistic" + }, + "Status": { + "Code": 999, + "Content": "test error message", + "Type": "Warnung" + } +} diff --git a/tests/testthat/variables3/api/catalogue/variables2statistic-8da08f.json b/tests/testthat/variables3/api/catalogue/variables2statistic-f8d69a.json similarity index 87% rename from tests/testthat/variables3/api/catalogue/variables2statistic-8da08f.json rename to tests/testthat/variables3/api/catalogue/variables2statistic-f8d69a.json index 2dd65d8..6030c3e 100644 --- a/tests/testthat/variables3/api/catalogue/variables2statistic-8da08f.json +++ b/tests/testthat/variables3/api/catalogue/variables2statistic-f8d69a.json @@ -4,16 +4,16 @@ "Method": "variables2statistic" }, "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" + "Code": 22, + "Content": "erfolgreich (Mindestens ein Parameter enthält ungültige Werte. Er wurde angepasst, um den Service starten zu können.: sortcriterion)", + "Type": "Warnung" }, "Parameter": { "username": "********************", "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "type": "Alle", @@ -66,14 +66,14 @@ { "Code": "DINSG", "Content": "Deutschland insgesamt", - "Type": "r?umlich insgesamt", + "Type": "räumlich insgesamt", "Values": "-1", "Information": "false" }, { "Code": "DLAND", - "Content": "Bundesl?nder", - "Type": "r?umlich", + "Content": "Bundesländer", + "Type": "räumlich", "Values": "-1", "Information": "true" }, @@ -113,5 +113,5 @@ "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-30c942.json b/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-30c942.json new file mode 100644 index 0000000..ef5cb1a --- /dev/null +++ b/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-30c942.json @@ -0,0 +1,199 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "cubes2statistic" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "61111", + "selection": "", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "61111B5001", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:34:49h", + "Information": "false" + }, + { + "Code": "61111B5002", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:35:14h", + "Information": "false" + }, + { + "Code": "61111B5003", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:35:42h", + "Information": "false" + }, + { + "Code": "61111B5004", + "Content": "Verbraucherpreisindex für Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020", + "LatestUpdate": "18.04.2024 13:36:07h", + "Information": "false" + }, + { + "Code": "61111BJ001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:32h", + "Information": "false" + }, + { + "Code": "61111BJ002", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:23h", + "Information": "false" + }, + { + "Code": "61111BJ003", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:26h", + "Information": "false" + }, + { + "Code": "61111BJ004", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:51h", + "Information": "false" + }, + { + "Code": "61111BJ005", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:47h", + "Information": "false" + }, + { + "Code": "61111BJ006", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Jahr", + "State": "vollständig mit Werten", + "Time": "1991-2023", + "LatestUpdate": "16.01.2024 08:00:29h", + "Information": "false" + }, + { + "Code": "61111BJ007", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Jahr", + "State": "vollständig mit Werten", + "Time": "2020-2023", + "LatestUpdate": "16.01.2024 08:00:43h", + "Information": "false" + }, + { + "Code": "61111BM001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:40h", + "Information": "false" + }, + { + "Code": "61111BM002", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:16h", + "Information": "false" + }, + { + "Code": "61111BM003", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:19h", + "Information": "false" + }, + { + "Code": "61111BM004", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:34h", + "Information": "false" + }, + { + "Code": "61111BM005", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:27h", + "Information": "false" + }, + { + "Code": "61111BM006", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1991-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:30h", + "Information": "false" + }, + { + "Code": "61111BM007", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2020-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:23h", + "Information": "false" + }, + { + "Code": "61111LJ001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Bundesländer, Jahr", + "State": "vollständig mit Werten", + "Time": "1995-2023", + "LatestUpdate": "16.01.2024 08:00:38h", + "Information": "false" + }, + { + "Code": "61111LJ100", + "Content": "Verbraucherpreisindex für Deutschland, Index der Nettokaltmieten, Bundesländer, Jahr", + "State": "vollständig mit Werten", + "Time": "2005-2023", + "LatestUpdate": "16.01.2024 08:00:35h", + "Information": "false" + }, + { + "Code": "61111LM001", + "Content": "Verbraucherpreisindex für Deutschland, Verbraucherpreisindex, Bundesländer, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 1995-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:37h", + "Information": "false" + }, + { + "Code": "61111LM100", + "Content": "Verbraucherpreisindex für Deutschland, Index der Nettokaltmieten, Bundesländer, Monate, Jahr", + "State": "vollständig mit Werten", + "Time": "Januar 2005-Mai 2024", + "LatestUpdate": "12.06.2024 08:00:12h", + "Information": "false" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-bacd2f.json b/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-bacd2f.json deleted file mode 100644 index 0184e89..0000000 --- a/tests/testthat/xy_statistic1/api/catalogue/cubes2statistic-bacd2f.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "cubes2statistic" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "61111", - "selection": "", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "61111B5001", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5002", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5003", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111B5004", - "Content": "Verbraucherpreisindex f?r Deutschland, Gewichtung, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1995-2020", - "LatestUpdate": "17.02.2023 17:46:32h", - "Information": "false" - }, - { - "Code": "61111BJ001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:07:11h", - "Information": "false" - }, - { - "Code": "61111BJ002", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:09:18h", - "Information": "false" - }, - { - "Code": "61111BJ003", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "1991-2022", - "LatestUpdate": "09.03.2023 12:11:38h", - "Information": "false" - }, - { - "Code": "61111BJ004", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ005", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ006", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:46:49h", - "Information": "false" - }, - { - "Code": "61111BJ007", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "03.03.2023 10:05:14h", - "Information": "false" - }, - { - "Code": "61111BM001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:47h", - "Information": "false" - }, - { - "Code": "61111BM002", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 2-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:35h", - "Information": "false" - }, - { - "Code": "61111BM003", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 3-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 1991-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:54h", - "Information": "false" - }, - { - "Code": "61111BM004", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 4-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:51h", - "Information": "false" - }, - { - "Code": "61111BM005", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums, 5-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:38h", - "Information": "false" - }, - { - "Code": "61111BM006", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszw.d.Individualkonsums,Sonderpositionen, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:28h", - "Information": "false" - }, - { - "Code": "61111BM007", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Deutschland insgesamt, Verwendungszwecke des Individualkonsums,10-Steller, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:31h", - "Information": "false" - }, - { - "Code": "61111LJ001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Bundesl?nder, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:47:09h", - "Information": "false" - }, - { - "Code": "61111LJ100", - "Content": "Verbraucherpreisindex f?r Deutschland, Index der Nettokaltmieten, Bundesl?nder, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "2020-2022", - "LatestUpdate": "17.02.2023 17:47:09h", - "Information": "false" - }, - { - "Code": "61111LM001", - "Content": "Verbraucherpreisindex f?r Deutschland, Verbraucherpreisindex, Bundesl?nder, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:41h", - "Information": "false" - }, - { - "Code": "61111LM100", - "Content": "Verbraucherpreisindex f?r Deutschland, Index der Nettokaltmieten, Bundesl?nder, Monate, Jahr", - "State": "vollst?ndig mit Werten", - "Time": "Januar 2020-Februar 2023", - "LatestUpdate": "10.03.2023 08:00:44h", - "Information": "false" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/xy_statistic3/api/catalogue/tables2statistic-476d62.json b/tests/testthat/xy_statistic1/api/catalogue/tables2statistic-30c942.json similarity index 64% rename from tests/testthat/xy_statistic3/api/catalogue/tables2statistic-476d62.json rename to tests/testthat/xy_statistic1/api/catalogue/tables2statistic-30c942.json index 123ed4e..d0c38cb 100644 --- a/tests/testthat/xy_statistic3/api/catalogue/tables2statistic-476d62.json +++ b/tests/testthat/xy_statistic1/api/catalogue/tables2statistic-30c942.json @@ -13,7 +13,7 @@ "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "pagelength": "100", "language": "de" }, @@ -21,58 +21,58 @@ { "Code": "61111-0001", "Content": "Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0002", "Content": "Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0003", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "2020 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0004", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "Januar 2020 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0005", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0006", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0007", - "Content": "W?gungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "1995 - 2020" + "Content": "Wägungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", + "Time": "2020 - 2020" }, { "Code": "61111-0010", - "Content": "Verbraucherpreisindex: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Verbraucherpreisindex: Bundesländer, Jahre", + "Time": "1995 - 2023" }, { "Code": "61111-0011", - "Content": "Verbraucherpreisindex: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Verbraucherpreisindex: Bundesländer, Monate", + "Time": "Januar 1995 - Mai 2024" }, { "Code": "61111-0020", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Index der Nettokaltmieten: Bundesländer, Jahre", + "Time": "2005 - 2023" }, { "Code": "61111-0021", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Index der Nettokaltmieten: Bundesländer, Monate", + "Time": "Januar 2005 - Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_statistic1/api/catalogue/variables2statistic-476d62.json b/tests/testthat/xy_statistic1/api/catalogue/variables2statistic-30c942.json similarity index 93% rename from tests/testthat/xy_statistic1/api/catalogue/variables2statistic-476d62.json rename to tests/testthat/xy_statistic1/api/catalogue/variables2statistic-30c942.json index 2dd65d8..4946432 100644 --- a/tests/testthat/xy_statistic1/api/catalogue/variables2statistic-476d62.json +++ b/tests/testthat/xy_statistic1/api/catalogue/variables2statistic-30c942.json @@ -13,7 +13,7 @@ "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "type": "Alle", @@ -66,14 +66,14 @@ { "Code": "DINSG", "Content": "Deutschland insgesamt", - "Type": "r?umlich insgesamt", + "Type": "räumlich insgesamt", "Values": "-1", "Information": "false" }, { "Code": "DLAND", - "Content": "Bundesl?nder", - "Type": "r?umlich", + "Content": "Bundesländer", + "Type": "räumlich", "Values": "-1", "Information": "true" }, @@ -113,5 +113,5 @@ "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_statistic2/api/catalogue/tables2statistic-476d62.json b/tests/testthat/xy_statistic2/api/catalogue/tables2statistic-30c942.json similarity index 64% rename from tests/testthat/xy_statistic2/api/catalogue/tables2statistic-476d62.json rename to tests/testthat/xy_statistic2/api/catalogue/tables2statistic-30c942.json index 123ed4e..d0c38cb 100644 --- a/tests/testthat/xy_statistic2/api/catalogue/tables2statistic-476d62.json +++ b/tests/testthat/xy_statistic2/api/catalogue/tables2statistic-30c942.json @@ -13,7 +13,7 @@ "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "pagelength": "100", "language": "de" }, @@ -21,58 +21,58 @@ { "Code": "61111-0001", "Content": "Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0002", "Content": "Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0003", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "2020 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0004", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "Januar 2020 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0005", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0006", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0007", - "Content": "W?gungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "1995 - 2020" + "Content": "Wägungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", + "Time": "2020 - 2020" }, { "Code": "61111-0010", - "Content": "Verbraucherpreisindex: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Verbraucherpreisindex: Bundesländer, Jahre", + "Time": "1995 - 2023" }, { "Code": "61111-0011", - "Content": "Verbraucherpreisindex: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Verbraucherpreisindex: Bundesländer, Monate", + "Time": "Januar 1995 - Mai 2024" }, { "Code": "61111-0020", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Index der Nettokaltmieten: Bundesländer, Jahre", + "Time": "2005 - 2023" }, { "Code": "61111-0021", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Index der Nettokaltmieten: Bundesländer, Monate", + "Time": "Januar 2005 - Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_statistic1/api/catalogue/tables2statistic-476d62.json b/tests/testthat/xy_statistic3/api/catalogue/tables2statistic-30c942.json similarity index 64% rename from tests/testthat/xy_statistic1/api/catalogue/tables2statistic-476d62.json rename to tests/testthat/xy_statistic3/api/catalogue/tables2statistic-30c942.json index 123ed4e..d0c38cb 100644 --- a/tests/testthat/xy_statistic1/api/catalogue/tables2statistic-476d62.json +++ b/tests/testthat/xy_statistic3/api/catalogue/tables2statistic-30c942.json @@ -13,7 +13,7 @@ "password": "********************", "name": "61111", "selection": "", - "area": "oeffentlich", + "area": "Alle", "pagelength": "100", "language": "de" }, @@ -21,58 +21,58 @@ { "Code": "61111-0001", "Content": "Verbraucherpreisindex: Deutschland, Jahre", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0002", "Content": "Verbraucherpreisindex: Deutschland, Monate", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0003", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "2020 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0004", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "Januar 2020 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0005", "Content": "Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "1991 - 2022" + "Time": "1991 - 2023" }, { "Code": "61111-0006", "Content": "Verbraucherpreisindex: Deutschland, Monate,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-/3-/4-/5-/10-Steller/Sonderpositionen)", - "Time": "Januar 1991 - Februar 2023" + "Time": "Januar 1991 - Mai 2024" }, { "Code": "61111-0007", - "Content": "W?gungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", - "Time": "1995 - 2020" + "Content": "Wägungsschema des Verbraucherpreisindex: Deutschland, Jahre,\nKlassifikation der Verwendungszwecke des Individualkonsums\n(COICOP 2-5-Steller Hierarchie)", + "Time": "2020 - 2020" }, { "Code": "61111-0010", - "Content": "Verbraucherpreisindex: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Verbraucherpreisindex: Bundesländer, Jahre", + "Time": "1995 - 2023" }, { "Code": "61111-0011", - "Content": "Verbraucherpreisindex: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Verbraucherpreisindex: Bundesländer, Monate", + "Time": "Januar 1995 - Mai 2024" }, { "Code": "61111-0020", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Jahre", - "Time": "2020 - 2022" + "Content": "Index der Nettokaltmieten: Bundesländer, Jahre", + "Time": "2005 - 2023" }, { "Code": "61111-0021", - "Content": "Index der Nettokaltmieten: Bundesl?nder, Monate", - "Time": "Januar 2020 - Februar 2023" + "Content": "Index der Nettokaltmieten: Bundesländer, Monate", + "Time": "Januar 2005 - Mai 2024" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_variable1/api/catalogue/statistics2variable-0e956d.json b/tests/testthat/xy_variable1/api/catalogue/statistics2variable-93dc8a.json similarity index 79% rename from tests/testthat/xy_variable1/api/catalogue/statistics2variable-0e956d.json rename to tests/testthat/xy_variable1/api/catalogue/statistics2variable-93dc8a.json index 1fa227d..3c4029d 100644 --- a/tests/testthat/xy_variable1/api/catalogue/statistics2variable-0e956d.json +++ b/tests/testthat/xy_variable1/api/catalogue/statistics2variable-93dc8a.json @@ -13,7 +13,7 @@ "password": "********************", "name": "DLAND", "selection": "", - "area": "oeffentlich", + "area": "Alle", "searchcriterion": "Code", "sortcriterion": "Code", "pagelength": "100", @@ -29,66 +29,66 @@ { "Code": "12111", "Content": "Zensus", - "Cubes": "24", + "Cubes": "0", "Information": "true" }, { "Code": "12211", "Content": "Mikrozensus", - "Cubes": "483", + "Cubes": "487", "Information": "true" }, { "Code": "12231", "Content": "IKT-Nutzung in privaten Haushalten", - "Cubes": "42", + "Cubes": "44", "Information": "true" }, { "Code": "12251", "Content": "Arbeitsmarktstatistik des Mikrozensus", - "Cubes": "68", + "Cubes": "60", "Information": "false" }, { "Code": "12411", - "Content": "Fortschreibung des Bev?lkerungsstandes", + "Content": "Fortschreibung des Bevölkerungsstandes", "Cubes": "28", "Information": "true" }, { "Code": "12421", - "Content": "Bev?lkerungsvorausberechnungen", + "Content": "Bevölkerungsvorausberechnungen", "Cubes": "16", "Information": "true" }, { "Code": "12521", - "Content": "Ausl?nderstatistik", + "Content": "Ausländerstatistik", "Cubes": "98", "Information": "true" }, { "Code": "12531", - "Content": "Statistik ?ber Schutzsuchende", + "Content": "Statistik über Schutzsuchende", "Cubes": "78", "Information": "true" }, { "Code": "12611", - "Content": "Statistik der Eheschlie?ungen", + "Content": "Statistik der Eheschließungen", "Cubes": "7", "Information": "true" }, { "Code": "12612", "Content": "Statistik der Geburten", - "Cubes": "33", + "Cubes": "37", "Information": "true" }, { "Code": "12613", - "Content": "Statistik der Sterbef?lle", + "Content": "Statistik der Sterbefälle", "Cubes": "17", "Information": "true" }, @@ -100,13 +100,13 @@ }, { "Code": "12631", - "Content": "Statistik rechtskr?ftiger Urteile in Ehesachen", + "Content": "Statistik rechtskräftiger Urteile in Ehesachen", "Cubes": "6", "Information": "true" }, { "Code": "12651", - "Content": "Begr?ndung von Lebenspartnerschaften", + "Content": "Begründung von Lebenspartnerschaften", "Cubes": "3", "Information": "true" }, @@ -119,24 +119,24 @@ { "Code": "12711", "Content": "Wanderungsstatistik", - "Cubes": "46", + "Cubes": "65", "Information": "true" }, { "Code": "13111", - "Content": "Statistik d. sozialversicherungspfl. Besch?ftigten", + "Content": "Statistik d. sozialversicherungspfl. Beschäftigten", "Cubes": "13", "Information": "true" }, { "Code": "13211", - "Content": "Arbeitsmarktstatistik der Bundesagentur f?r Arbeit", + "Content": "Arbeitsmarktstatistik der Bundesagentur für Arbeit", "Cubes": "16", "Information": "true" }, { "Code": "13311", - "Content": "L?nderberechnung Erwerbst?tige", + "Content": "Länderberechnung Erwerbstätige", "Cubes": "4", "Information": "true" }, @@ -148,7 +148,7 @@ }, { "Code": "14121", - "Content": "Repr?sentative Bundestagswahlstatistik", + "Content": "Repräsentative Bundestagswahlstatistik", "Cubes": "10", "Information": "true" }, @@ -160,7 +160,7 @@ }, { "Code": "14221", - "Content": "Repr?sentative Europawahlstatistik", + "Content": "Repräsentative Europawahlstatistik", "Cubes": "4", "Information": "true" }, @@ -191,12 +191,12 @@ { "Code": "21311", "Content": "Statistik der Studenten", - "Cubes": "10", + "Cubes": "48", "Information": "true" }, { "Code": "21321", - "Content": "Statistik der Pr?fungen", + "Content": "Statistik der Prüfungen", "Cubes": "5", "Information": "true" }, @@ -214,8 +214,8 @@ }, { "Code": "21353", - "Content": "Statistik der Hochschulr?te", - "Cubes": "2", + "Content": "Statistik der Hochschulräte", + "Cubes": "8", "Information": "true" }, { @@ -238,19 +238,19 @@ }, { "Code": "21411", - "Content": "Statistik der Bundesausbildungsf?rderung (BAf?G)", - "Cubes": "4", + "Content": "Statistik der Bundesausbildungsförderung (BAföG)", + "Cubes": "51", "Information": "true" }, { "Code": "21421", - "Content": "Statistik der Aufstiegsfortbildungsf?rderung", + "Content": "Statistik der Aufstiegsfortbildungsförderung", "Cubes": "30", "Information": "true" }, { "Code": "21431", - "Content": "F?rderung nach dem Stipendienprogramm-Gesetz", + "Content": "Förderung nach dem Stipendienprogramm-Gesetz", "Cubes": "37", "Information": "true" }, @@ -262,19 +262,19 @@ }, { "Code": "21621", - "Content": "Berichterstattung ?ber ?ffentliche Kulturausgaben", + "Content": "Berichterstattung über öffentliche Kulturausgaben", "Cubes": "6", "Information": "true" }, { "Code": "21711", - "Content": "Bildungsberichterstattung f?r nationale Zwecke", + "Content": "Bildungsberichterstattung für nationale Zwecke", "Cubes": "13", "Information": "false" }, { "Code": "21821", - "Content": "Berichterstattung ?ber Forschung und Entwicklung", + "Content": "Berichterstattung über Forschung und Entwicklung", "Cubes": "5", "Information": "false" }, @@ -286,20 +286,20 @@ }, { "Code": "22121", - "Content": "Statistik d. Empf?nger v. Hilfe z. Lebensunterhalt", + "Content": "Statistik d. Empfänger v. Hilfe z. Lebensunterhalt", "Cubes": "26", "Information": "true" }, { "Code": "22131", - "Content": "Statistik d. Empf?nger v. Leist.(5.-9.Kap.SGB XII)", + "Content": "Statistik d. Empfänger v. Leist.(5.-9.Kap.SGB XII)", "Cubes": "20", "Information": "true" }, { "Code": "22151", "Content": "Grundsicherung im Alter und bei Erwerbsminderung", - "Cubes": "91", + "Cubes": "98", "Information": "true" }, { @@ -316,19 +316,19 @@ }, { "Code": "22211", - "Content": "Ausgaben und Einnahmen f?r Asylbewerberleistungen", + "Content": "Ausgaben und Einnahmen für Asylbewerberleistungen", "Cubes": "12", "Information": "true" }, { "Code": "22221", - "Content": "Statistik der Empf?nger von Asylbewerberleistungen", - "Cubes": "11", + "Content": "Statistik der Empfänger von Asylbewerberleistungen", + "Cubes": "91", "Information": "true" }, { "Code": "22231", - "Content": "Stat.d. Empf?nger von besonderen Asylbewerberlstg.", + "Content": "Stat.d. Empfänger von besonderen Asylbewerberlstg.", "Cubes": "6", "Information": "true" }, @@ -340,19 +340,19 @@ }, { "Code": "22411", - "Content": "Statistik ?ber ambulante Pflegeeinrichtungen", + "Content": "Statistik über ambulante Pflegeeinrichtungen", "Cubes": "21", "Information": "true" }, { "Code": "22412", - "Content": "Statistik ?ber station?re Pflegeeinrichtungen", + "Content": "Statistik über stationäre Pflegeeinrichtungen", "Cubes": "23", "Information": "true" }, { "Code": "22421", - "Content": "Statistik ?ber d. Empf?nger v.Pflegegeldleistungen", + "Content": "Statistik über d. Empfänger v.Pflegegeldleistungen", "Cubes": "19", "Information": "true" }, @@ -364,7 +364,7 @@ }, { "Code": "22518", - "Content": "Stat. ?. d. Schutzauftrag bei Kindeswohlgef?hrdung", + "Content": "Stat. ü. d. Schutzauftrag bei Kindeswohlgefährdung", "Cubes": "26", "Information": "true" }, @@ -382,25 +382,25 @@ }, { "Code": "22523", - "Content": "Statistik der vorl?ufigen Schutzma?nahmen", + "Content": "Statistik der vorläufigen Schutzmaßnahmen", "Cubes": "31", "Information": "true" }, { "Code": "22541", - "Content": "Kinder und t?tige Personen in Tageseinrichtungen", - "Cubes": "1", + "Content": "Kinder und tätige Personen in Tageseinrichtungen", + "Cubes": "67", "Information": "true" }, { "Code": "22542", - "Content": "Statistik der Einricht. der Kinder- u. Jugendhilfe", - "Cubes": "4", + "Content": "Statistik der Träger der Jugendhilfe", + "Cubes": "29", "Information": "true" }, { "Code": "22543", - "Content": "Kinder und t?tige Personen in Kindertagespflege", + "Content": "Kinder und tätige Personen in Kindertagespflege", "Cubes": "29", "Information": "true" }, @@ -425,7 +425,7 @@ { "Code": "22971", "Content": "Statistik untergebrachter wohnungsloser Personen", - "Cubes": "104", + "Cubes": "107", "Information": "true" }, { @@ -442,8 +442,8 @@ }, { "Code": "23311", - "Content": "Statistik der Schwangerschaftsabbr?che", - "Cubes": "2", + "Content": "Statistik der Schwangerschaftsabbrüche", + "Cubes": "12", "Information": "true" }, { @@ -460,44 +460,44 @@ }, { "Code": "24221", - "Content": "Statistik ?ber Straf- und Bu?geldverfahren", - "Cubes": "4", + "Content": "Statistik über Straf- und Bußgeldverfahren", + "Cubes": "6", "Information": "true" }, { "Code": "24231", - "Content": "Statistik ?ber Zivilsachen", - "Cubes": "2", + "Content": "Statistik über Zivilsachen", + "Cubes": "4", "Information": "true" }, { "Code": "24241", - "Content": "Statistik ?ber Familiensachen", - "Cubes": "4", + "Content": "Statistik über Familiensachen", + "Cubes": "6", "Information": "true" }, { "Code": "24251", "Content": "Statistik in der Verwaltungsgerichtsbarkeit", - "Cubes": "2", + "Cubes": "4", "Information": "true" }, { "Code": "24261", "Content": "Statistik in der Finanzgerichtsbarkeit", - "Cubes": "2", + "Cubes": "4", "Information": "true" }, { "Code": "24271", "Content": "Statistik in der Sozialgerichtsbarkeit", - "Cubes": "2", + "Cubes": "4", "Information": "true" }, { "Code": "24281", "Content": "Statistik in der Arbeitsgerichtsbarkeit", - "Cubes": "2", + "Cubes": "4", "Information": "true" }, { @@ -509,18 +509,18 @@ { "Code": "31111", "Content": "Statistik der Baugenehmigungen", - "Cubes": "8", + "Cubes": "29", "Information": "true" }, { "Code": "31121", "Content": "Statistik der Baufertigstellungen", - "Cubes": "4", + "Cubes": "7", "Information": "true" }, { "Code": "31131", - "Content": "Statistik des Bau?berhangs", + "Content": "Statistik des Bauüberhangs", "Cubes": "8", "Information": "true" }, @@ -532,8 +532,8 @@ }, { "Code": "31231", - "Content": "Fortschreibung Wohngeb?ude- und Wohnungsbestand", - "Cubes": "6", + "Content": "Fortschreibung Wohngebäude- und Wohnungsbestand", + "Cubes": "25", "Information": "true" }, { @@ -544,7 +544,7 @@ }, { "Code": "32121", - "Content": "Erhebung der ?ffentlich-rechtl. Abfallentsorgung", + "Content": "Erhebung der öffentlich-rechtl. Abfallentsorgung", "Cubes": "5", "Information": "true" }, @@ -556,55 +556,55 @@ }, { "Code": "32136", - "Content": "Erhebung ?ber zur?ckgenommene Verkaufsverpackungen", + "Content": "Erhebung über zurückgenommene Verkaufsverpackungen", "Cubes": "10", "Information": "true" }, { "Code": "32141", - "Content": "Aufbereitung,Verwertung v. Bau- u. Abbruchabf?llen", + "Content": "Aufbereitung,Verwertung v. Bau- u. Abbruchabfällen", "Cubes": "7", "Information": "true" }, { "Code": "32151", - "Content": "Erhebung der gef?hrlichen Abf?lle", + "Content": "Erhebung der gefährlichen Abfälle", "Cubes": "12", "Information": "true" }, { "Code": "32161", - "Content": "Erhebung ?ber die Abfallerzeugung", + "Content": "Erhebung über die Abfallerzeugung", "Cubes": "6", "Information": "true" }, { "Code": "32211", - "Content": "Erhebung der ?ffentlichen Wasserversorgung", + "Content": "Erhebung der öffentlichen Wasserversorgung", "Cubes": "4", "Information": "true" }, { "Code": "32212", - "Content": "Erhebung der ?ffentlichen Abwasserentsorgung", + "Content": "Erhebung der öffentlichen Abwasserentsorgung", "Cubes": "2", "Information": "true" }, { "Code": "32213", - "Content": "Erhebung der ?ffentlichen Abwasserbehandlung", + "Content": "Erhebung der öffentlichen Abwasserbehandlung", "Cubes": "4", "Information": "true" }, { "Code": "32214", - "Content": "Erhebung der ?ff. Abwasserentsorgung - Kl?rschlamm", + "Content": "Erhebung der öff. Abwasserentsorgung - Klärschlamm", "Cubes": "1", "Information": "true" }, { "Code": "32221", - "Content": "Erh. nicht?ff. Wasserversorgung,Abwasserentsorgung", + "Content": "Erh. nichtöff. Wasserversorgung,Abwasserentsorgung", "Cubes": "12", "Information": "true" }, @@ -621,5 +621,5 @@ "Information": "true" } ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" } diff --git a/tests/testthat/xy_variable1/api/catalogue/tables2variable-0e956d.json b/tests/testthat/xy_variable1/api/catalogue/tables2variable-0e956d.json deleted file mode 100644 index 7edf6f6..0000000 --- a/tests/testthat/xy_variable1/api/catalogue/tables2variable-0e956d.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables2variable" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "DLAND", - "selection": "", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12111-0101", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht", - "Time": "" - }, - { - "Code": "12111-0102", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0103", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0104", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0105", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0106", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Familienstand,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12211-0902", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", - "Time": "2017 - 2021" - }, - { - "Code": "12211-0903", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", - "Time": "2017 - 2021" - }, - { - "Code": "12211-1001", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1002", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, ?berwiegender Lebensunterhalt, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1003", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesl?nder,\nJahre, Geschlecht, Gr??enkl. pers?nl. monatl. Nettoeinkommen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1004", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", - "Time": "2021 - 2021" - }, - { - "Code": "12211-9004", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesl?nder, Jahre (bis 2019)", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9014", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9015", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9033", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019)", - "Time": "05/1970 - 2019" - }, - { - "Code": "12211-9034", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019), Haushaltsgr??e", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9041", - "Content": "Bev?lkerung in Familien/Lebensformen: Bundesl?nder, Jahre (bis 2019), Lebensformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9044", - "Content": "Familien, Paare, Alleinerziehende: Bundesl?nder, Jahre (bis 2019), Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9047", - "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesl?nder, Jahre (bis 2019),\nVorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9051", - "Content": "Alleinerziehende: Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9053", - "Content": "Alleinstehende: Bundesl?nder, Jahre (bis 2019), Geschlecht,\nHaushaltsgr??e", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9056", - "Content": "Ledige Kinder in Familien: Bundesl?nder, Jahre (bis 2019),\nFamilienformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12231-0101", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetaktivit?ten in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12231-0102", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetk?ufe in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12251-0101", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Stellung im Beruf, Gr??enklassen der in der Arbeitsst?tte t?tigen Personen", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0102", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0103", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0104", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0108", - "Content": "Abh?ngig Erwerbst?tige aus Hauptwohnsitzhaushalten:\nBundesl?nder, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", - "Time": "2021 - 2021" - }, - { - "Code": "12411-0010", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag", - "Time": "31.12.1958 - 31.12.2021" - }, - { - "Code": "12411-0011", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0012", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0013", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0014", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht, Altersjahre", - "Time": "31.12.2000 - 31.12.2021" - }, - { - "Code": "12411-0021", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag zum Quartalsende,\nGeschlecht", - "Time": "31.03.1991 - 30.09.2022" - }, - { - "Code": "12411-0042", - "Content": "Durchschnittliche Bev?lkerung: Bundesl?nder, Jahre,\nNationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12411-0050", - "Content": "Bev?lkerungsdichte: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12421-0003", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0004", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung, Geschlecht,\nAltersjahre", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0101", - "Content": "Vorausberechnete Privathaushalte: Bundesl?nder, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgr??e", - "Time": "2019 - 2040" - }, - { - "Code": "12521-0020", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0021", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0022", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0023", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0024", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0025", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0026", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgew?hlte Aufenthaltstitel,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0027", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nRegisterbewegungen (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0028", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abg?nge (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0029", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabg?nge (regional),\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0030", - "Content": "Durchschnittsalter der Ausl?nder: Bundesl?nder, Stichtag,\nGeschlecht, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0031", - "Content": "Durchschnittliche Aufenthaltsdauer der Ausl?nder:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12531-0020", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0021", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0022", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0023", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, L?ndergruppierungen\n/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0024", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0025", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0026", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0027", - "Content": "Durchschnittsalter der Schutzsuchenden: Bundesl?nder,\nStichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0028", - "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12611-0010", - "Content": "Eheschlie?ungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12611-0011", - "Content": "Eheschlie?ungen: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0100", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0101", - "Content": "Lebendgeborene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0102", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Familienstand der\nEltern", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0103", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Staatsangeh?rigkeit des\nKindes und der Eltern", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0104", - "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesl?nder,\nJahre, Altersgruppen", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0105", - "Content": "Nettoreproduktionsrate: Bundesl?nder, Jahre (bis 2010),\nAltersgruppen", - "Time": "2004 - 2010" - }, - { - "Code": "12612-0106", - "Content": "Totgeborene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0010", - "Content": "Gestorbene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0011", - "Content": "Gestorbene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0012", - "Content": "Gestorbene: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12613-0013", - "Content": "Gestorbene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12621-0004", - "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesl?nder, Jahre, Geschlecht", - "Time": "2002/04 - 2019/21" - }, - { - "Code": "12631-0010", - "Content": "Ehescheidungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12631-0011", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Ehedauer", - "Time": "1997 - 2021" - }, - { - "Code": "12631-0012", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Gemeinsame\nminderj?hrige Kinder", - "Time": "1997 - 2021" - }, - { - "Code": "12651-0003", - "Content": "Begr?ndungen von Lebenspartnerschaften: Bundesl?nder, Jahre (bis 2017), Geschlecht", - "Time": "2014 - 2017" - }, - { - "Code": "12661-0002", - "Content": "Aufhebungen von Lebenspartnerschaften: Bundesl?nder, Jahre,\nGeschlecht", - "Time": "2014 - 2021" - }, - { - "Code": "12711-0020", - "Content": "Gesamtwanderungen ?ber die Grenzen der Bundesl?nder: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0021", - "Content": "Wanderungen zwischen den Bundesl?ndern: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0023", - "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "13111-0005", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Geschlecht", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13111-0006", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Wirtschaftsabschnitte", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13211-0007", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Jahre", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0008", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Monate", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0009", - "Content": "Arbeitslose: Bundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0010", - "Content": "Arbeitslose: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0011", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0012", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13311-0002", - "Content": "Erwerbst?tige, Arbeitnehmer, Selbst?ndige und mithelfende\nFamilienangeh?rige (im Inland): Bundesl?nder, Jahre,\nWirtschaftszweige", - "Time": "1991 - 2022" - }, - { - "Code": "14111-0003", - "Content": "Wahlberechtigte, W?hler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesl?nder, Stichtag", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14111-0004", - "Content": "G?ltige Erststimmen, g?ltige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0004", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht", - "Time": "22.09.2002 - 26.09.2021" - }, - { - "Code": "14121-0005", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nAltersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0006", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht, Altersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14211-0002", - "Content": "G?ltige Stimmen (Allgemeine Europawahlstatistik):\nBundesl?nder, Stichtag, Parteien", - "Time": "12.06.1994 - 26.05.2019" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/xy_variable1/api/catalogue/tables2variable-93dc8a.json b/tests/testthat/xy_variable1/api/catalogue/tables2variable-93dc8a.json new file mode 100644 index 0000000..9d1e0e0 --- /dev/null +++ b/tests/testthat/xy_variable1/api/catalogue/tables2variable-93dc8a.json @@ -0,0 +1,523 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables2variable" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "DLAND", + "selection": "", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "11111-0001", + "Content": "Gebietsfläche: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12211-0902", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", + "Time": "2017 - 2023" + }, + { + "Code": "12211-0903", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", + "Time": "2017 - 2023" + }, + { + "Code": "12211-1001", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Altersgruppen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1002", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Überwiegender Lebensunterhalt, Altersgruppen", + "Time": "2023 - 2023" + }, + { + "Code": "12211-1003", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesländer,\nJahre, Geschlecht, Größenkl. persönl. monatl. Nettoeinkommen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1004", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12211-9004", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesländer, Jahre (bis 2019)", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9014", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9015", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9033", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019)", + "Time": "05/1970 - 2019" + }, + { + "Code": "12211-9034", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019), Haushaltsgröße", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9041", + "Content": "Bevölkerung in Familien/Lebensformen: Bundesländer, Jahre (bis 2019), Lebensformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9044", + "Content": "Familien, Paare, Alleinerziehende: Bundesländer, Jahre (bis 2019), Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9047", + "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesländer, Jahre (bis 2019),\nVorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9051", + "Content": "Alleinerziehende: Bundesländer, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9053", + "Content": "Alleinstehende: Bundesländer, Jahre (bis 2019), Geschlecht,\nHaushaltsgröße", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9056", + "Content": "Ledige Kinder in Familien: Bundesländer, Jahre (bis 2019),\nFamilienformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12231-0101", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetaktivitäten in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0102", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetkäufe in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0103", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nArt der Computer- und Internetkenntnisse", + "Time": "2023 - 2023" + }, + { + "Code": "12251-0101", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0102", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0103", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0104", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0108", + "Content": "Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten:\nBundesländer, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", + "Time": "2021 - 2023" + }, + { + "Code": "12411-0010", + "Content": "Bevölkerung: Bundesländer, Stichtag", + "Time": "31.12.1958 - 31.12.2023" + }, + { + "Code": "12411-0011", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0012", + "Content": "Bevölkerung: Bundesländer, Stichtag, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0013", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0014", + "Content": "Bevölkerung: Bundesländer, Stichtag, Nationalität,\nGeschlecht, Altersjahre", + "Time": "31.12.2000 - 31.12.2023" + }, + { + "Code": "12411-0021", + "Content": "Bevölkerung: Bundesländer, Stichtag zum Quartalsende,\nGeschlecht", + "Time": "31.03.1991 - 31.12.2023" + }, + { + "Code": "12411-0042", + "Content": "Durchschnittliche Bevölkerung: Bundesländer, Jahre,\nNationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12411-0050", + "Content": "Bevölkerungsdichte: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12421-0003", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0004", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung, Geschlecht,\nAltersjahre", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0101", + "Content": "Vorausberechnete Privathaushalte: Bundesländer, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgröße", + "Time": "2019 - 2040" + }, + { + "Code": "12521-0020", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0021", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0022", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0023", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0024", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0025", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0026", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgewählte Aufenthaltstitel,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0027", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nRegisterbewegungen (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0028", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abgänge (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0029", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabgänge (regional),\nLändergruppierungen/Staatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0030", + "Content": "Durchschnittsalter der Ausländer: Bundesländer, Stichtag,\nGeschlecht, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0031", + "Content": "Durchschnittliche Aufenthaltsdauer der Ausländer:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12531-0020", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0021", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0022", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0023", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, Ländergruppierungen\n/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0024", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0025", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0026", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0027", + "Content": "Durchschnittsalter der Schutzsuchenden: Bundesländer,\nStichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0028", + "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12611-0010", + "Content": "Eheschließungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12611-0011", + "Content": "Eheschließungen: Bundesländer, Monate", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0100", + "Content": "Lebendgeborene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0101", + "Content": "Lebendgeborene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0102", + "Content": "Lebendgeborene: Bundesländer, Jahre, Familienstand der\nEltern", + "Time": "1991 - 2023" + }, + { + "Code": "12612-0103", + "Content": "Lebendgeborene: Bundesländer, Jahre, Staatsangehörigkeit des\nKindes und der Eltern", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0104", + "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesländer,\nJahre, Altersgruppen", + "Time": "1991 - 2022" + }, + { + "Code": "12612-0105", + "Content": "Nettoreproduktionsrate: Bundesländer, Jahre (bis 2010),\nAltersgruppen", + "Time": "2004 - 2010" + }, + { + "Code": "12612-0106", + "Content": "Totgeborene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0010", + "Content": "Gestorbene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0011", + "Content": "Gestorbene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0012", + "Content": "Gestorbene: Bundesländer, Monate", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12613-0013", + "Content": "Gestorbene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12621-0004", + "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesländer, Jahre, Geschlecht", + "Time": "2002/04 - 2020/22" + }, + { + "Code": "12631-0010", + "Content": "Ehescheidungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12631-0011", + "Content": "Ehescheidungen: Bundesländer, Jahre, Ehedauer", + "Time": "1997 - 2023" + }, + { + "Code": "12631-0012", + "Content": "Ehescheidungen: Bundesländer, Jahre, Gemeinsame\nminderjährige Kinder", + "Time": "1997 - 2023" + }, + { + "Code": "12651-0003", + "Content": "Begründungen von Lebenspartnerschaften: Bundesländer, Jahre (bis 2017), Geschlecht", + "Time": "2014 - 2017" + }, + { + "Code": "12661-0002", + "Content": "Aufhebungen von Lebenspartnerschaften: Bundesländer, Jahre,\nGeschlecht", + "Time": "2014 - 2023" + }, + { + "Code": "12711-0020", + "Content": "Gesamtwanderungen über die Grenzen der Bundesländer: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0021", + "Content": "Wanderungen zwischen den Bundesländern: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0023", + "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "13111-0005", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Geschlecht", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13111-0006", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Wirtschaftsabschnitte", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13211-0007", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Jahre", + "Time": "1991 - 2023" + }, + { + "Code": "13211-0008", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Monate", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0009", + "Content": "Arbeitslose: Bundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0010", + "Content": "Arbeitslose: Bundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0011", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0012", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13311-0002", + "Content": "Erwerbstätige, Arbeitnehmer, Selbständige und mithelfende\nFamilienangehörige (im Inland): Bundesländer, Jahre,\nWirtschaftszweige", + "Time": "1991 - 2023" + }, + { + "Code": "14111-0003", + "Content": "Wahlberechtigte, Wähler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesländer, Stichtag", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14111-0004", + "Content": "Gültige Erststimmen, gültige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0004", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht", + "Time": "22.09.2002 - 26.09.2021" + }, + { + "Code": "14121-0005", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nAltersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0006", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14211-0002", + "Content": "Gültige Stimmen (Allgemeine Europawahlstatistik):\nBundesländer, Stichtag, Parteien", + "Time": "12.06.1994 - 09.06.2024" + }, + { + "Code": "14221-0002", + "Content": "Anteil gültiger Stimmen (Repräsentative\nEuropawahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "25.05.2014 - 26.05.2019" + }, + { + "Code": "21111-0010", + "Content": "Schüler, Schulanfänger, Absolventen und Abgänger:\nBundesländer, Schuljahr, Geschlecht", + "Time": "1997/98 - 2022/23" + }, + { + "Code": "21111-0011", + "Content": "Schüler: Bundesländer, Schuljahr, Geschlecht, Schulart,\nJahrgangsstufen", + "Time": "1998/99 - 2022/23" + }, + { + "Code": "21111-0012", + "Content": "Schulanfänger: Bundesländer, Schuljahr, Geschlecht, Schulart, Einschulungsart", + "Time": "1999/00 - 2022/23" + }, + { + "Code": "21111-0013", + "Content": "Absolventen und Abgänger: Bundesländer, Schuljahr,\nGeschlecht, Schulart, Schulabschlüsse", + "Time": "1997/98 - 2021/22" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-93dc8a.json b/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-93dc8a.json new file mode 100644 index 0000000..d0ed62a --- /dev/null +++ b/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-93dc8a.json @@ -0,0 +1,823 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "timeseries2variable" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "DLAND", + "selection": "", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "11111LJ001", + "Content": "Feststellung des Gebietsstands, Gebietsfläche, Bundesländer, Stichtag", + "State": "undefiniert", + "Time": "31.12.1995-31.12.2022", + "LatestUpdate": "14.12.2023 10:12:15h", + "Information": "false" + }, + { + "Code": "12211LJ001", + "Content": "Mikrozensus, Bevölkerung, Erwerbspersonen, Erwerbstätige, Erwerbslose, Nichterwerbspersonen, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "04/1991-03/2004", + "LatestUpdate": "22.03.2005 11:46:17h", + "Information": "false" + }, + { + "Code": "12211LJ002", + "Content": "Mikrozensus, Privathaushalte, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "05/1970-03/2004", + "LatestUpdate": "09.11.2020 11:43:47h", + "Information": "false" + }, + { + "Code": "12211LJ003", + "Content": "Mikrozensus, Privathaushalte, Bundesländer, Haushaltsgröße, Stichmonat", + "State": "undefiniert", + "Time": "04/1991-03/2004", + "LatestUpdate": "09.11.2020 11:44:19h", + "Information": "false" + }, + { + "Code": "12211LJ004", + "Content": "Mikrozensus, Bevölkerung in Familien/Lebensformen, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:46:13h", + "Information": "false" + }, + { + "Code": "12211LJ005", + "Content": "Mikrozensus, Bevölkerung in Familien/Lebensformen, Bundesländer, Lebensformen, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:46:47h", + "Information": "false" + }, + { + "Code": "12211LJ006", + "Content": "Mikrozensus, Familien, Bundesländer, Vorhandensein von Kindern, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:47:04h", + "Information": "false" + }, + { + "Code": "12211LJ007", + "Content": "Mikrozensus, Paare, Bundesländer, Vorhandensein von Kindern, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:47:17h", + "Information": "false" + }, + { + "Code": "12211LJ008", + "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:47:33h", + "Information": "false" + }, + { + "Code": "12211LJ009", + "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesländer, Vorhandensein von Kindern, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:48:49h", + "Information": "false" + }, + { + "Code": "12211LJ010", + "Content": "Mikrozensus, Alleinerziehende, Bundesländer, Vorhandensein von Kindern, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:49:06h", + "Information": "false" + }, + { + "Code": "12211LJ011", + "Content": "Mikrozensus, Alleinerziehende, Bundesländer, Vorhandensein von Kindern, Geschlecht, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "17.06.2021 16:45:09h", + "Information": "false" + }, + { + "Code": "12211LJ012", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:50:28h", + "Information": "false" + }, + { + "Code": "12211LJ013", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Geschlecht, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:51:03h", + "Information": "false" + }, + { + "Code": "12211LJ014", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Haushaltsgröße, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:52:36h", + "Information": "false" + }, + { + "Code": "12211LJ015", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Haushaltsgröße, Geschlecht, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:52:53h", + "Information": "false" + }, + { + "Code": "12211LJ016", + "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesländer, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:53:13h", + "Information": "false" + }, + { + "Code": "12211LJ017", + "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesländer, Familienformen, Stichmonat", + "State": "undefiniert", + "Time": "04/1996-03/2004", + "LatestUpdate": "09.11.2020 11:53:34h", + "Information": "false" + }, + { + "Code": "12211LJ018", + "Content": "Mikrozensus, Bevölkerung, Erwerbspersonen, Erwerbstätige, Erwerbslose, Nichterwerbspersonen, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:32:58h", + "Information": "false" + }, + { + "Code": "12211LJ019", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:17h", + "Information": "false" + }, + { + "Code": "12211LJ020", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:15h", + "Information": "false" + }, + { + "Code": "12211LJ021", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Allgemeine Schulausbildung, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:16h", + "Information": "false" + }, + { + "Code": "12211LJ022", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Geschlecht, Allgemeine Schulausbildung, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:11h", + "Information": "false" + }, + { + "Code": "12211LJ023", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Beruflicher Bildungsabschluss, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:14h", + "Information": "false" + }, + { + "Code": "12211LJ024", + "Content": "Mikrozensus, Bevölkerung (ab 15 Jahren), Bundesländer, Geschlecht, Beruflicher Bildungsabschluss, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "25.11.2020 16:54:13h", + "Information": "false" + }, + { + "Code": "12211LJ025", + "Content": "Mikrozensus, Privathaushalte, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:44:43h", + "Information": "false" + }, + { + "Code": "12211LJ026", + "Content": "Mikrozensus, Privathaushalte, Bundesländer, Haushaltsgröße, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:45:05h", + "Information": "false" + }, + { + "Code": "12211LJ027", + "Content": "Mikrozensus, Bevölkerung in Familien/Lebensformen, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:53:58h", + "Information": "false" + }, + { + "Code": "12211LJ028", + "Content": "Mikrozensus, Bevölkerung in Familien/Lebensformen, Bundesländer, Lebensformen, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:54:40h", + "Information": "false" + }, + { + "Code": "12211LJ029", + "Content": "Mikrozensus, Familien, Bundesländer, Vorhandensein von Kindern, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:54:54h", + "Information": "false" + }, + { + "Code": "12211LJ030", + "Content": "Mikrozensus, Paare, Bundesländer, Vorhandensein von Kindern, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:55:15h", + "Information": "false" + }, + { + "Code": "12211LJ031", + "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:55:36h", + "Information": "false" + }, + { + "Code": "12211LJ032", + "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesländer, Vorhandensein von Kindern, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:56:00h", + "Information": "false" + }, + { + "Code": "12211LJ033", + "Content": "Mikrozensus, Alleinerziehende, Bundesländer, Vorhandensein von Kindern, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:56:14h", + "Information": "false" + }, + { + "Code": "12211LJ034", + "Content": "Mikrozensus, Alleinerziehende, Bundesländer, Vorhandensein von Kindern, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:56:32h", + "Information": "false" + }, + { + "Code": "12211LJ035", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:57:58h", + "Information": "false" + }, + { + "Code": "12211LJ036", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:58:56h", + "Information": "false" + }, + { + "Code": "12211LJ037", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Haushaltsgröße, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 11:59:13h", + "Information": "false" + }, + { + "Code": "12211LJ038", + "Content": "Mikrozensus, Alleinstehende, Bundesländer, Haushaltsgröße, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 12:00:39h", + "Information": "false" + }, + { + "Code": "12211LJ039", + "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 12:00:56h", + "Information": "false" + }, + { + "Code": "12211LJ040", + "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesländer, Familienformen, Jahr", + "State": "undefiniert", + "Time": "2005-2019", + "LatestUpdate": "09.11.2020 12:01:10h", + "Information": "false" + }, + { + "Code": "12211LJ041", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:37h", + "Information": "false" + }, + { + "Code": "12211LJ042", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:34h", + "Information": "false" + }, + { + "Code": "12211LJ043", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Altersgruppen (u25-65m), Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:27h", + "Information": "false" + }, + { + "Code": "12211LJ044", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Art der Gemeinschaftsunterkunft, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:24h", + "Information": "false" + }, + { + "Code": "12211LJ045", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Hauptstatus, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:31h", + "Information": "false" + }, + { + "Code": "12211LJ046", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Geschlecht, Altersgruppen (u25-65m), Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:17h", + "Information": "false" + }, + { + "Code": "12211LJ047", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Geschlecht, Art der Gemeinschaftsunterkunft, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:20:21h", + "Information": "false" + }, + { + "Code": "12211LJ048", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Geschlecht, Hauptstatus, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:21:17h", + "Information": "false" + }, + { + "Code": "12211LJ049", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Altersgruppen (u25-65m), Hauptstatus, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:21:21h", + "Information": "false" + }, + { + "Code": "12211LJ050", + "Content": "Mikrozensus, Bevölkerung in Gemeinschaftsunterkünften, Bundesländer, Geschlecht, Altersgruppen (u25-65m), Hauptstatus, Jahr", + "State": "undefiniert", + "Time": "2017-2023", + "LatestUpdate": "28.03.2024 15:21:25h", + "Information": "false" + }, + { + "Code": "12211LJ240", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:30h", + "Information": "false" + }, + { + "Code": "12211LJ241", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:21h", + "Information": "false" + }, + { + "Code": "12211LJ242", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (u15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:17h", + "Information": "false" + }, + { + "Code": "12211LJ243", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Altersgruppen (u15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:27h", + "Information": "false" + }, + { + "Code": "12211LJ244", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (u15-65m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:13h", + "Information": "false" + }, + { + "Code": "12211LJ245", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Überwiegender Lebensunterhalt, Jahr", + "State": "undefiniert", + "Time": "2021-2022", + "LatestUpdate": "16.02.2024 14:18:02h", + "Information": "false" + }, + { + "Code": "12211LJ246", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (u15-65m), Überwiegender Lebensunterhalt, Jahr", + "State": "undefiniert", + "Time": "2021-2022", + "LatestUpdate": "16.02.2024 14:19:03h", + "Information": "false" + }, + { + "Code": "12211LJ247", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Größenklassen des persönl. monatl. Nettoeinkommens, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:09h", + "Information": "false" + }, + { + "Code": "12211LJ248", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Größenklassen des persönl. monatl. Nettoeinkommens, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:27:04h", + "Information": "false" + }, + { + "Code": "12211LJ249", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:26:18h", + "Information": "false" + }, + { + "Code": "12211LJ250", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Altersgruppen (15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:09:03h", + "Information": "false" + }, + { + "Code": "12211LJ251", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:09:06h", + "Information": "false" + }, + { + "Code": "12211LJ252", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:26:07h", + "Information": "false" + }, + { + "Code": "12211LJ253", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (15-75m), Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:26:22h", + "Information": "false" + }, + { + "Code": "12211LJ254", + "Content": "Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Altersgruppen (15-75m), Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:26:15h", + "Information": "false" + }, + { + "Code": "12211LJ255", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Überwiegender Lebensunterhalt, Jahr", + "State": "undefiniert", + "Time": "2023", + "LatestUpdate": "11.04.2024 16:34:01h", + "Information": "false" + }, + { + "Code": "12211LJ256", + "Content": "Mikrozensus, Bevölkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbstätige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (u15-65m), Überwiegender Lebensunterhalt, Jahr", + "State": "undefiniert", + "Time": "2023", + "LatestUpdate": "11.04.2024 16:34:01h", + "Information": "false" + }, + { + "Code": "12231L2001", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Art der Computer- und Internetkenntnisse, Jahr", + "State": "undefiniert", + "Time": "2023", + "LatestUpdate": "06.12.2023 16:08:58h", + "Information": "false" + }, + { + "Code": "12231L2002", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Altersgruppen (16-u75), Art der Computer- und Internetkenntnisse, Jahr", + "State": "undefiniert", + "Time": "2023", + "LatestUpdate": "06.12.2023 16:08:58h", + "Information": "false" + }, + { + "Code": "12231LJ030", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:05:23h", + "Information": "false" + }, + { + "Code": "12231LJ031", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Altersgruppen (16-u75), Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:05:41h", + "Information": "false" + }, + { + "Code": "12231LJ032", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Priv. Internetaktivitäten i.d.letzten drei Monaten, Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:04:23h", + "Information": "false" + }, + { + "Code": "12231LJ033", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Altersgruppen (16-u75), Priv. Internetaktivitäten i.d.letzten drei Monaten, Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:05:32h", + "Information": "false" + }, + { + "Code": "12231LJ034", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Private Internetkäufe in den letzten drei Monaten, Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:06:26h", + "Information": "false" + }, + { + "Code": "12231LJ035", + "Content": "IKT-Nutzung in privaten Haushalten, Bevölkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesländer, Altersgruppen (16-u75), Private Internetkäufe in den letzten drei Monaten, Jahr", + "State": "undefiniert", + "Time": "2022-2023", + "LatestUpdate": "06.12.2023 15:05:28h", + "Information": "false" + }, + { + "Code": "12251LJ001", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:33:06h", + "Information": "false" + }, + { + "Code": "12251LJ002", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:33:13h", + "Information": "false" + }, + { + "Code": "12251LJ003", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:33:10h", + "Information": "false" + }, + { + "Code": "12251LJ004", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Stellung im Beruf, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:33:18h", + "Information": "false" + }, + { + "Code": "12251LJ009", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Wochenend- und Feiertagsarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:34:19h", + "Information": "false" + }, + { + "Code": "12251LJ010", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Wochenend- und Feiertagsarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:35:17h", + "Information": "false" + }, + { + "Code": "12251LJ011", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Stellung im Beruf, Wochenend- und Feiertagsarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:04h", + "Information": "false" + }, + { + "Code": "12251LJ012", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Stellung im Beruf, Wochenend- und Feiertagsarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:35:06h", + "Information": "false" + }, + { + "Code": "12251LJ013", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Abend-, Nacht- und Schichtarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:35:10h", + "Information": "false" + }, + { + "Code": "12251LJ014", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Abend-, Nacht- und Schichtarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:35:13h", + "Information": "false" + }, + { + "Code": "12251LJ015", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Stellung im Beruf, Abend-, Nacht- und Schichtarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:17h", + "Information": "false" + }, + { + "Code": "12251LJ016", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Stellung im Beruf, Abend-, Nacht- und Schichtarbeit, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:12h", + "Information": "false" + }, + { + "Code": "12251LJ017", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Erwerbsarbeit zu Hause, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:27h", + "Information": "false" + }, + { + "Code": "12251LJ018", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Erwerbsarbeit zu Hause, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:24h", + "Information": "false" + }, + { + "Code": "12251LJ019", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Stellung im Beruf, Erwerbsarbeit zu Hause, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:36:21h", + "Information": "false" + }, + { + "Code": "12251LJ020", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu Hause, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:37:15h", + "Information": "false" + }, + { + "Code": "12251LJ021", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:38:02h", + "Information": "false" + }, + { + "Code": "12251LJ022", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:37:05h", + "Information": "false" + }, + { + "Code": "12251LJ023", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:37:09h", + "Information": "false" + }, + { + "Code": "12251LJ024", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Altersgruppen (15-75m), Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:37:20h", + "Information": "false" + }, + { + "Code": "12251LJ025", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Art des Arbeitsvertrages, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:37:02h", + "Information": "false" + }, + { + "Code": "12251LJ026", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Art des Arbeitsvertrages, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:38:06h", + "Information": "false" + }, + { + "Code": "12251LJ027", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Altersgruppen (15-75m), Art des Arbeitsvertrages, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:38:11h", + "Information": "false" + }, + { + "Code": "12251LJ028", + "Content": "Arbeitsmarktstatistik des Mikrozensus, Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten, Bundesländer, Geschlecht, Altersgruppen (15-75m), Art des Arbeitsvertrages, Jahr", + "State": "undefiniert", + "Time": "2021-2023", + "LatestUpdate": "11.04.2024 15:38:18h", + "Information": "false" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-b809d6.json b/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-b809d6.json deleted file mode 100644 index 8a19f70..0000000 --- a/tests/testthat/xy_variable1/api/catalogue/timeseries2variable-b809d6.json +++ /dev/null @@ -1,823 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "timeseries2variable" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "DLAND", - "selection": "", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "11111LJ001", - "Content": "Feststellung des Gebietsstands, Gebietsfl?che, Bundesl?nder, Stichtag", - "State": "undefiniert", - "Time": "31.12.1995-31.12.2020", - "LatestUpdate": "06.12.2021 08:10:40h", - "Information": "false" - }, - { - "Code": "12111L1001", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:57h", - "Information": "false" - }, - { - "Code": "12111L1002", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:00:59h", - "Information": "false" - }, - { - "Code": "12111L1003", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:00h", - "Information": "false" - }, - { - "Code": "12111L1004", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u3-75m), Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:02h", - "Information": "false" - }, - { - "Code": "12111L1005", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u18-65m), Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:04h", - "Information": "false" - }, - { - "Code": "12111L1006", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Familienstand, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:05h", - "Information": "false" - }, - { - "Code": "12111L1007", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Geschlecht, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:07h", - "Information": "false" - }, - { - "Code": "12111L1008", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Altersgruppen (u3-75m), Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:09h", - "Information": "false" - }, - { - "Code": "12111L1009", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Nationalit?t, Familienstand, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:10h", - "Information": "false" - }, - { - "Code": "12111L1010", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Altersgruppen (u3-75m), Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:12h", - "Information": "false" - }, - { - "Code": "12111L1011", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Geschlecht, Familienstand, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:16h", - "Information": "false" - }, - { - "Code": "12111L1012", - "Content": "Zensus, Bev?lkerung (Zensus), Bundesl?nder, Altersgruppen (u18-65m), Familienstand, Stichtag", - "State": "undefiniert", - "Time": "09.05.2011", - "LatestUpdate": "10.04.2014 08:01:14h", - "Information": "false" - }, - { - "Code": "12211LJ001", - "Content": "Mikrozensus, Bev?lkerung, Erwerbspersonen, Erwerbst?tige, Erwerbslose, Nichterwerbspersonen, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "04/1991-03/2004", - "LatestUpdate": "22.03.2005 11:46:17h", - "Information": "false" - }, - { - "Code": "12211LJ002", - "Content": "Mikrozensus, Privathaushalte, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "05/1970-03/2004", - "LatestUpdate": "09.11.2020 11:43:47h", - "Information": "false" - }, - { - "Code": "12211LJ003", - "Content": "Mikrozensus, Privathaushalte, Bundesl?nder, Haushaltsgr??e, Stichmonat", - "State": "undefiniert", - "Time": "04/1991-03/2004", - "LatestUpdate": "09.11.2020 11:44:19h", - "Information": "false" - }, - { - "Code": "12211LJ004", - "Content": "Mikrozensus, Bev?lkerung in Familien/Lebensformen, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:46:13h", - "Information": "false" - }, - { - "Code": "12211LJ005", - "Content": "Mikrozensus, Bev?lkerung in Familien/Lebensformen, Bundesl?nder, Lebensformen, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:46:47h", - "Information": "false" - }, - { - "Code": "12211LJ006", - "Content": "Mikrozensus, Familien, Bundesl?nder, Vorhandensein von Kindern, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:47:04h", - "Information": "false" - }, - { - "Code": "12211LJ007", - "Content": "Mikrozensus, Paare, Bundesl?nder, Vorhandensein von Kindern, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:47:17h", - "Information": "false" - }, - { - "Code": "12211LJ008", - "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:47:33h", - "Information": "false" - }, - { - "Code": "12211LJ009", - "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesl?nder, Vorhandensein von Kindern, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:48:49h", - "Information": "false" - }, - { - "Code": "12211LJ010", - "Content": "Mikrozensus, Alleinerziehende, Bundesl?nder, Vorhandensein von Kindern, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:49:06h", - "Information": "false" - }, - { - "Code": "12211LJ011", - "Content": "Mikrozensus, Alleinerziehende, Bundesl?nder, Vorhandensein von Kindern, Geschlecht, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "17.06.2021 16:45:09h", - "Information": "false" - }, - { - "Code": "12211LJ012", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:50:28h", - "Information": "false" - }, - { - "Code": "12211LJ013", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Geschlecht, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:51:03h", - "Information": "false" - }, - { - "Code": "12211LJ014", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Haushaltsgr??e, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:52:36h", - "Information": "false" - }, - { - "Code": "12211LJ015", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Haushaltsgr??e, Geschlecht, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:52:53h", - "Information": "false" - }, - { - "Code": "12211LJ016", - "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesl?nder, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:53:13h", - "Information": "false" - }, - { - "Code": "12211LJ017", - "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesl?nder, Familienformen, Stichmonat", - "State": "undefiniert", - "Time": "04/1996-03/2004", - "LatestUpdate": "09.11.2020 11:53:34h", - "Information": "false" - }, - { - "Code": "12211LJ018", - "Content": "Mikrozensus, Bev?lkerung, Erwerbspersonen, Erwerbst?tige, Erwerbslose, Nichterwerbspersonen, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:32:58h", - "Information": "false" - }, - { - "Code": "12211LJ019", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:17h", - "Information": "false" - }, - { - "Code": "12211LJ020", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:15h", - "Information": "false" - }, - { - "Code": "12211LJ021", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Allgemeine Schulausbildung, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:16h", - "Information": "false" - }, - { - "Code": "12211LJ022", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Geschlecht, Allgemeine Schulausbildung, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:11h", - "Information": "false" - }, - { - "Code": "12211LJ023", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Beruflicher Bildungsabschluss, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:14h", - "Information": "false" - }, - { - "Code": "12211LJ024", - "Content": "Mikrozensus, Bev?lkerung (ab 15 Jahren), Bundesl?nder, Geschlecht, Beruflicher Bildungsabschluss, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "25.11.2020 16:54:13h", - "Information": "false" - }, - { - "Code": "12211LJ025", - "Content": "Mikrozensus, Privathaushalte, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:44:43h", - "Information": "false" - }, - { - "Code": "12211LJ026", - "Content": "Mikrozensus, Privathaushalte, Bundesl?nder, Haushaltsgr??e, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:45:05h", - "Information": "false" - }, - { - "Code": "12211LJ027", - "Content": "Mikrozensus, Bev?lkerung in Familien/Lebensformen, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:53:58h", - "Information": "false" - }, - { - "Code": "12211LJ028", - "Content": "Mikrozensus, Bev?lkerung in Familien/Lebensformen, Bundesl?nder, Lebensformen, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:54:40h", - "Information": "false" - }, - { - "Code": "12211LJ029", - "Content": "Mikrozensus, Familien, Bundesl?nder, Vorhandensein von Kindern, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:54:54h", - "Information": "false" - }, - { - "Code": "12211LJ030", - "Content": "Mikrozensus, Paare, Bundesl?nder, Vorhandensein von Kindern, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:55:15h", - "Information": "false" - }, - { - "Code": "12211LJ031", - "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:55:36h", - "Information": "false" - }, - { - "Code": "12211LJ032", - "Content": "Mikrozensus, Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche Lebensgemeinschaften, Bundesl?nder, Vorhandensein von Kindern, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:56:00h", - "Information": "false" - }, - { - "Code": "12211LJ033", - "Content": "Mikrozensus, Alleinerziehende, Bundesl?nder, Vorhandensein von Kindern, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:56:14h", - "Information": "false" - }, - { - "Code": "12211LJ034", - "Content": "Mikrozensus, Alleinerziehende, Bundesl?nder, Vorhandensein von Kindern, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:56:32h", - "Information": "false" - }, - { - "Code": "12211LJ035", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:57:58h", - "Information": "false" - }, - { - "Code": "12211LJ036", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:58:56h", - "Information": "false" - }, - { - "Code": "12211LJ037", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Haushaltsgr??e, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 11:59:13h", - "Information": "false" - }, - { - "Code": "12211LJ038", - "Content": "Mikrozensus, Alleinstehende, Bundesl?nder, Haushaltsgr??e, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 12:00:39h", - "Information": "false" - }, - { - "Code": "12211LJ039", - "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 12:00:56h", - "Information": "false" - }, - { - "Code": "12211LJ040", - "Content": "Mikrozensus, Ledige Kinder in der Familie, Ledige Kinder unter 18 Jahren in der Familie, Bundesl?nder, Familienformen, Jahr", - "State": "undefiniert", - "Time": "2005-2019", - "LatestUpdate": "09.11.2020 12:01:10h", - "Information": "false" - }, - { - "Code": "12211LJ041", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:46h", - "Information": "false" - }, - { - "Code": "12211LJ042", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:37h", - "Information": "false" - }, - { - "Code": "12211LJ043", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Altersgruppen (u25-65m), Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:56h", - "Information": "false" - }, - { - "Code": "12211LJ044", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Art der Gemeinschaftsunterkunft, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:50h", - "Information": "false" - }, - { - "Code": "12211LJ045", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Hauptstatus, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:59h", - "Information": "false" - }, - { - "Code": "12211LJ046", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Geschlecht, Altersgruppen (u25-65m), Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:53h", - "Information": "false" - }, - { - "Code": "12211LJ047", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Geschlecht, Art der Gemeinschaftsunterkunft, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:40h", - "Information": "false" - }, - { - "Code": "12211LJ048", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Geschlecht, Hauptstatus, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:45:43h", - "Information": "false" - }, - { - "Code": "12211LJ049", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Altersgruppen (u25-65m), Hauptstatus, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:46:41h", - "Information": "false" - }, - { - "Code": "12211LJ050", - "Content": "Mikrozensus, Bev?lkerung in Gemeinschaftsunterk?nften, Bundesl?nder, Geschlecht, Altersgruppen (u25-65m), Hauptstatus, Jahr", - "State": "undefiniert", - "Time": "2017-2021", - "LatestUpdate": "30.01.2023 15:46:38h", - "Information": "false" - }, - { - "Code": "12211LJ240", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:12h", - "Information": "false" - }, - { - "Code": "12211LJ241", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:09h", - "Information": "false" - }, - { - "Code": "12211LJ242", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Altersgruppen (u15-75m), Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 15:59:44h", - "Information": "false" - }, - { - "Code": "12211LJ243", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Altersgruppen (u15-75m), Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 15:59:54h", - "Information": "false" - }, - { - "Code": "12211LJ244", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Altersgruppen (u15-65m), Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 15:59:48h", - "Information": "false" - }, - { - "Code": "12211LJ245", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, ?berwiegender Lebensunterhalt, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 15:59:41h", - "Information": "false" - }, - { - "Code": "12211LJ246", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Altersgruppen (u15-65m), ?berwiegender Lebensunterhalt, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:06h", - "Information": "false" - }, - { - "Code": "12211LJ247", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Gr??enklassen des pers?nl. monatl. Nettoeinkommens, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 15:59:37h", - "Information": "false" - }, - { - "Code": "12211LJ248", - "Content": "Mikrozensus, Bev?lkerung in Hauptwohnsitzhaushalten, Erwerbspersonen aus Hauptwohnsitzhaushalten, Erwerbst?tige aus Hauptwohnsitzhaushalten, Erwerbslose aus Hauptwohnsitzhaushalten, Nichterwerbspersonen aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Gr??enklassen des pers?nl. monatl. Nettoeinkommens, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:01h", - "Information": "false" - }, - { - "Code": "12211LJ249", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Altersgruppen (15-75m), Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:37h", - "Information": "false" - }, - { - "Code": "12211LJ250", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Altersgruppen (15-75m), Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:41h", - "Information": "false" - }, - { - "Code": "12211LJ251", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:52h", - "Information": "false" - }, - { - "Code": "12211LJ252", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:56h", - "Information": "false" - }, - { - "Code": "12211LJ253", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Altersgruppen (15-75m), Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:45h", - "Information": "false" - }, - { - "Code": "12211LJ254", - "Content": "Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Altersgruppen (15-75m), Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:00:49h", - "Information": "false" - }, - { - "Code": "12231LJ030", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12231LJ031", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Altersgruppen (16-u75), Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12231LJ032", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Priv. Internetaktivit?ten i.d.letzten drei Monaten, Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12231LJ033", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Altersgruppen (16-u75), Priv. Internetaktivit?ten i.d.letzten drei Monaten, Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12231LJ034", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Private Internetk?ufe in den letzten drei Monaten, Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12231LJ035", - "Content": "IKT-Nutzung in privaten Haushalten, Bev?lkerung von 16-u75 J. in Hauptwohnsitzhaush., Bundesl?nder, Altersgruppen (16-u75), Private Internetk?ufe in den letzten drei Monaten, Jahr", - "State": "undefiniert", - "Time": "2022", - "LatestUpdate": "23.01.2023 12:52:39h", - "Information": "false" - }, - { - "Code": "12251LJ001", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:43h", - "Information": "false" - }, - { - "Code": "12251LJ002", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:41h", - "Information": "false" - }, - { - "Code": "12251LJ003", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:47h", - "Information": "false" - }, - { - "Code": "12251LJ004", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Stellung im Beruf, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:54h", - "Information": "false" - }, - { - "Code": "12251LJ005", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Gr??enkl. der in der Arbeitsst?tte t?tigen Pers., Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:57h", - "Information": "false" - }, - { - "Code": "12251LJ006", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Gr??enkl. der in der Arbeitsst?tte t?tigen Pers., Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:00h", - "Information": "false" - }, - { - "Code": "12251LJ007", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Stellung im Beruf, Gr??enkl. der in der Arbeitsst?tte t?tigen Pers., Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:37:50h", - "Information": "false" - }, - { - "Code": "12251LJ008", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Stellung im Beruf, Gr??enkl. der in der Arbeitsst?tte t?tigen Pers., Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:40h", - "Information": "false" - }, - { - "Code": "12251LJ009", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Wochenend- und Feiertagsarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:43h", - "Information": "false" - }, - { - "Code": "12251LJ010", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Wochenend- und Feiertagsarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:47h", - "Information": "false" - }, - { - "Code": "12251LJ011", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Stellung im Beruf, Wochenend- und Feiertagsarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:50h", - "Information": "false" - }, - { - "Code": "12251LJ012", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Stellung im Beruf, Wochenend- und Feiertagsarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:55h", - "Information": "false" - }, - { - "Code": "12251LJ013", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Abend-, Nacht- und Schichtarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:38:58h", - "Information": "false" - }, - { - "Code": "12251LJ014", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Abend-, Nacht- und Schichtarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:39:02h", - "Information": "false" - }, - { - "Code": "12251LJ015", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Stellung im Beruf, Abend-, Nacht- und Schichtarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:39:06h", - "Information": "false" - }, - { - "Code": "12251LJ016", - "Content": "Arbeitsmarktstatistik des Mikrozensus, Erwerbst?tige aus Hauptwohnsitzhaushalten, Bundesl?nder, Geschlecht, Stellung im Beruf, Abend-, Nacht- und Schichtarbeit, Jahr", - "State": "undefiniert", - "Time": "2021", - "LatestUpdate": "30.01.2023 16:39:56h", - "Information": "false" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/xy_variable2/api/catalogue/tables2variable-0e956d.json b/tests/testthat/xy_variable2/api/catalogue/tables2variable-0e956d.json deleted file mode 100644 index 7edf6f6..0000000 --- a/tests/testthat/xy_variable2/api/catalogue/tables2variable-0e956d.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables2variable" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "DLAND", - "selection": "", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12111-0101", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht", - "Time": "" - }, - { - "Code": "12111-0102", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0103", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0104", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0105", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0106", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Familienstand,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12211-0902", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", - "Time": "2017 - 2021" - }, - { - "Code": "12211-0903", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", - "Time": "2017 - 2021" - }, - { - "Code": "12211-1001", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1002", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, ?berwiegender Lebensunterhalt, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1003", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesl?nder,\nJahre, Geschlecht, Gr??enkl. pers?nl. monatl. Nettoeinkommen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1004", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", - "Time": "2021 - 2021" - }, - { - "Code": "12211-9004", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesl?nder, Jahre (bis 2019)", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9014", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9015", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9033", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019)", - "Time": "05/1970 - 2019" - }, - { - "Code": "12211-9034", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019), Haushaltsgr??e", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9041", - "Content": "Bev?lkerung in Familien/Lebensformen: Bundesl?nder, Jahre (bis 2019), Lebensformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9044", - "Content": "Familien, Paare, Alleinerziehende: Bundesl?nder, Jahre (bis 2019), Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9047", - "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesl?nder, Jahre (bis 2019),\nVorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9051", - "Content": "Alleinerziehende: Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9053", - "Content": "Alleinstehende: Bundesl?nder, Jahre (bis 2019), Geschlecht,\nHaushaltsgr??e", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9056", - "Content": "Ledige Kinder in Familien: Bundesl?nder, Jahre (bis 2019),\nFamilienformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12231-0101", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetaktivit?ten in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12231-0102", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetk?ufe in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12251-0101", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Stellung im Beruf, Gr??enklassen der in der Arbeitsst?tte t?tigen Personen", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0102", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0103", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0104", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0108", - "Content": "Abh?ngig Erwerbst?tige aus Hauptwohnsitzhaushalten:\nBundesl?nder, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", - "Time": "2021 - 2021" - }, - { - "Code": "12411-0010", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag", - "Time": "31.12.1958 - 31.12.2021" - }, - { - "Code": "12411-0011", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0012", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0013", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0014", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht, Altersjahre", - "Time": "31.12.2000 - 31.12.2021" - }, - { - "Code": "12411-0021", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag zum Quartalsende,\nGeschlecht", - "Time": "31.03.1991 - 30.09.2022" - }, - { - "Code": "12411-0042", - "Content": "Durchschnittliche Bev?lkerung: Bundesl?nder, Jahre,\nNationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12411-0050", - "Content": "Bev?lkerungsdichte: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12421-0003", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0004", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung, Geschlecht,\nAltersjahre", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0101", - "Content": "Vorausberechnete Privathaushalte: Bundesl?nder, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgr??e", - "Time": "2019 - 2040" - }, - { - "Code": "12521-0020", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0021", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0022", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0023", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0024", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0025", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0026", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgew?hlte Aufenthaltstitel,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0027", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nRegisterbewegungen (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0028", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abg?nge (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0029", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabg?nge (regional),\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0030", - "Content": "Durchschnittsalter der Ausl?nder: Bundesl?nder, Stichtag,\nGeschlecht, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0031", - "Content": "Durchschnittliche Aufenthaltsdauer der Ausl?nder:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12531-0020", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0021", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0022", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0023", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, L?ndergruppierungen\n/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0024", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0025", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0026", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0027", - "Content": "Durchschnittsalter der Schutzsuchenden: Bundesl?nder,\nStichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0028", - "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12611-0010", - "Content": "Eheschlie?ungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12611-0011", - "Content": "Eheschlie?ungen: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0100", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0101", - "Content": "Lebendgeborene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0102", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Familienstand der\nEltern", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0103", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Staatsangeh?rigkeit des\nKindes und der Eltern", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0104", - "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesl?nder,\nJahre, Altersgruppen", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0105", - "Content": "Nettoreproduktionsrate: Bundesl?nder, Jahre (bis 2010),\nAltersgruppen", - "Time": "2004 - 2010" - }, - { - "Code": "12612-0106", - "Content": "Totgeborene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0010", - "Content": "Gestorbene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0011", - "Content": "Gestorbene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0012", - "Content": "Gestorbene: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12613-0013", - "Content": "Gestorbene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12621-0004", - "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesl?nder, Jahre, Geschlecht", - "Time": "2002/04 - 2019/21" - }, - { - "Code": "12631-0010", - "Content": "Ehescheidungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12631-0011", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Ehedauer", - "Time": "1997 - 2021" - }, - { - "Code": "12631-0012", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Gemeinsame\nminderj?hrige Kinder", - "Time": "1997 - 2021" - }, - { - "Code": "12651-0003", - "Content": "Begr?ndungen von Lebenspartnerschaften: Bundesl?nder, Jahre (bis 2017), Geschlecht", - "Time": "2014 - 2017" - }, - { - "Code": "12661-0002", - "Content": "Aufhebungen von Lebenspartnerschaften: Bundesl?nder, Jahre,\nGeschlecht", - "Time": "2014 - 2021" - }, - { - "Code": "12711-0020", - "Content": "Gesamtwanderungen ?ber die Grenzen der Bundesl?nder: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0021", - "Content": "Wanderungen zwischen den Bundesl?ndern: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0023", - "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "13111-0005", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Geschlecht", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13111-0006", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Wirtschaftsabschnitte", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13211-0007", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Jahre", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0008", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Monate", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0009", - "Content": "Arbeitslose: Bundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0010", - "Content": "Arbeitslose: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0011", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0012", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13311-0002", - "Content": "Erwerbst?tige, Arbeitnehmer, Selbst?ndige und mithelfende\nFamilienangeh?rige (im Inland): Bundesl?nder, Jahre,\nWirtschaftszweige", - "Time": "1991 - 2022" - }, - { - "Code": "14111-0003", - "Content": "Wahlberechtigte, W?hler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesl?nder, Stichtag", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14111-0004", - "Content": "G?ltige Erststimmen, g?ltige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0004", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht", - "Time": "22.09.2002 - 26.09.2021" - }, - { - "Code": "14121-0005", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nAltersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0006", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht, Altersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14211-0002", - "Content": "G?ltige Stimmen (Allgemeine Europawahlstatistik):\nBundesl?nder, Stichtag, Parteien", - "Time": "12.06.1994 - 26.05.2019" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/xy_variable2/api/catalogue/tables2variable-93dc8a.json b/tests/testthat/xy_variable2/api/catalogue/tables2variable-93dc8a.json new file mode 100644 index 0000000..9d1e0e0 --- /dev/null +++ b/tests/testthat/xy_variable2/api/catalogue/tables2variable-93dc8a.json @@ -0,0 +1,523 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables2variable" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "DLAND", + "selection": "", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "11111-0001", + "Content": "Gebietsfläche: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12211-0902", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", + "Time": "2017 - 2023" + }, + { + "Code": "12211-0903", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", + "Time": "2017 - 2023" + }, + { + "Code": "12211-1001", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Altersgruppen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1002", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Überwiegender Lebensunterhalt, Altersgruppen", + "Time": "2023 - 2023" + }, + { + "Code": "12211-1003", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesländer,\nJahre, Geschlecht, Größenkl. persönl. monatl. Nettoeinkommen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1004", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12211-9004", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesländer, Jahre (bis 2019)", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9014", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9015", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9033", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019)", + "Time": "05/1970 - 2019" + }, + { + "Code": "12211-9034", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019), Haushaltsgröße", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9041", + "Content": "Bevölkerung in Familien/Lebensformen: Bundesländer, Jahre (bis 2019), Lebensformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9044", + "Content": "Familien, Paare, Alleinerziehende: Bundesländer, Jahre (bis 2019), Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9047", + "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesländer, Jahre (bis 2019),\nVorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9051", + "Content": "Alleinerziehende: Bundesländer, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9053", + "Content": "Alleinstehende: Bundesländer, Jahre (bis 2019), Geschlecht,\nHaushaltsgröße", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9056", + "Content": "Ledige Kinder in Familien: Bundesländer, Jahre (bis 2019),\nFamilienformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12231-0101", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetaktivitäten in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0102", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetkäufe in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0103", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nArt der Computer- und Internetkenntnisse", + "Time": "2023 - 2023" + }, + { + "Code": "12251-0101", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0102", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0103", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0104", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0108", + "Content": "Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten:\nBundesländer, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", + "Time": "2021 - 2023" + }, + { + "Code": "12411-0010", + "Content": "Bevölkerung: Bundesländer, Stichtag", + "Time": "31.12.1958 - 31.12.2023" + }, + { + "Code": "12411-0011", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0012", + "Content": "Bevölkerung: Bundesländer, Stichtag, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0013", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0014", + "Content": "Bevölkerung: Bundesländer, Stichtag, Nationalität,\nGeschlecht, Altersjahre", + "Time": "31.12.2000 - 31.12.2023" + }, + { + "Code": "12411-0021", + "Content": "Bevölkerung: Bundesländer, Stichtag zum Quartalsende,\nGeschlecht", + "Time": "31.03.1991 - 31.12.2023" + }, + { + "Code": "12411-0042", + "Content": "Durchschnittliche Bevölkerung: Bundesländer, Jahre,\nNationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12411-0050", + "Content": "Bevölkerungsdichte: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12421-0003", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0004", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung, Geschlecht,\nAltersjahre", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0101", + "Content": "Vorausberechnete Privathaushalte: Bundesländer, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgröße", + "Time": "2019 - 2040" + }, + { + "Code": "12521-0020", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0021", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0022", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0023", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0024", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0025", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0026", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgewählte Aufenthaltstitel,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0027", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nRegisterbewegungen (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0028", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abgänge (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0029", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabgänge (regional),\nLändergruppierungen/Staatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0030", + "Content": "Durchschnittsalter der Ausländer: Bundesländer, Stichtag,\nGeschlecht, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0031", + "Content": "Durchschnittliche Aufenthaltsdauer der Ausländer:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12531-0020", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0021", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0022", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0023", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, Ländergruppierungen\n/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0024", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0025", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0026", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0027", + "Content": "Durchschnittsalter der Schutzsuchenden: Bundesländer,\nStichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0028", + "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12611-0010", + "Content": "Eheschließungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12611-0011", + "Content": "Eheschließungen: Bundesländer, Monate", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0100", + "Content": "Lebendgeborene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0101", + "Content": "Lebendgeborene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0102", + "Content": "Lebendgeborene: Bundesländer, Jahre, Familienstand der\nEltern", + "Time": "1991 - 2023" + }, + { + "Code": "12612-0103", + "Content": "Lebendgeborene: Bundesländer, Jahre, Staatsangehörigkeit des\nKindes und der Eltern", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0104", + "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesländer,\nJahre, Altersgruppen", + "Time": "1991 - 2022" + }, + { + "Code": "12612-0105", + "Content": "Nettoreproduktionsrate: Bundesländer, Jahre (bis 2010),\nAltersgruppen", + "Time": "2004 - 2010" + }, + { + "Code": "12612-0106", + "Content": "Totgeborene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0010", + "Content": "Gestorbene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0011", + "Content": "Gestorbene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0012", + "Content": "Gestorbene: Bundesländer, Monate", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12613-0013", + "Content": "Gestorbene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12621-0004", + "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesländer, Jahre, Geschlecht", + "Time": "2002/04 - 2020/22" + }, + { + "Code": "12631-0010", + "Content": "Ehescheidungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12631-0011", + "Content": "Ehescheidungen: Bundesländer, Jahre, Ehedauer", + "Time": "1997 - 2023" + }, + { + "Code": "12631-0012", + "Content": "Ehescheidungen: Bundesländer, Jahre, Gemeinsame\nminderjährige Kinder", + "Time": "1997 - 2023" + }, + { + "Code": "12651-0003", + "Content": "Begründungen von Lebenspartnerschaften: Bundesländer, Jahre (bis 2017), Geschlecht", + "Time": "2014 - 2017" + }, + { + "Code": "12661-0002", + "Content": "Aufhebungen von Lebenspartnerschaften: Bundesländer, Jahre,\nGeschlecht", + "Time": "2014 - 2023" + }, + { + "Code": "12711-0020", + "Content": "Gesamtwanderungen über die Grenzen der Bundesländer: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0021", + "Content": "Wanderungen zwischen den Bundesländern: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0023", + "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "13111-0005", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Geschlecht", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13111-0006", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Wirtschaftsabschnitte", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13211-0007", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Jahre", + "Time": "1991 - 2023" + }, + { + "Code": "13211-0008", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Monate", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0009", + "Content": "Arbeitslose: Bundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0010", + "Content": "Arbeitslose: Bundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0011", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0012", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13311-0002", + "Content": "Erwerbstätige, Arbeitnehmer, Selbständige und mithelfende\nFamilienangehörige (im Inland): Bundesländer, Jahre,\nWirtschaftszweige", + "Time": "1991 - 2023" + }, + { + "Code": "14111-0003", + "Content": "Wahlberechtigte, Wähler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesländer, Stichtag", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14111-0004", + "Content": "Gültige Erststimmen, gültige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0004", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht", + "Time": "22.09.2002 - 26.09.2021" + }, + { + "Code": "14121-0005", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nAltersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0006", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14211-0002", + "Content": "Gültige Stimmen (Allgemeine Europawahlstatistik):\nBundesländer, Stichtag, Parteien", + "Time": "12.06.1994 - 09.06.2024" + }, + { + "Code": "14221-0002", + "Content": "Anteil gültiger Stimmen (Repräsentative\nEuropawahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "25.05.2014 - 26.05.2019" + }, + { + "Code": "21111-0010", + "Content": "Schüler, Schulanfänger, Absolventen und Abgänger:\nBundesländer, Schuljahr, Geschlecht", + "Time": "1997/98 - 2022/23" + }, + { + "Code": "21111-0011", + "Content": "Schüler: Bundesländer, Schuljahr, Geschlecht, Schulart,\nJahrgangsstufen", + "Time": "1998/99 - 2022/23" + }, + { + "Code": "21111-0012", + "Content": "Schulanfänger: Bundesländer, Schuljahr, Geschlecht, Schulart, Einschulungsart", + "Time": "1999/00 - 2022/23" + }, + { + "Code": "21111-0013", + "Content": "Absolventen und Abgänger: Bundesländer, Schuljahr,\nGeschlecht, Schulart, Schulabschlüsse", + "Time": "1997/98 - 2021/22" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/tests/testthat/xy_variable3/api/catalogue/tables2variable-0e956d.json b/tests/testthat/xy_variable3/api/catalogue/tables2variable-0e956d.json deleted file mode 100644 index 7edf6f6..0000000 --- a/tests/testthat/xy_variable3/api/catalogue/tables2variable-0e956d.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "Ident": { - "Service": "catalogue", - "Method": "tables2variable" - }, - "Status": { - "Code": 0, - "Content": "erfolgreich", - "Type": "Information" - }, - "Parameter": { - "username": "********************", - "password": "********************", - "name": "DLAND", - "selection": "", - "area": "oeffentlich", - "pagelength": "100", - "language": "de" - }, - "List": [ - { - "Code": "11111-0001", - "Content": "Gebietsfl?che: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12111-0101", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht", - "Time": "" - }, - { - "Code": "12111-0102", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0103", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Nationalit?t,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0104", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12111-0105", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand", - "Time": "" - }, - { - "Code": "12111-0106", - "Content": "Bev?lkerung (Zensus): Bundesl?nder, Stichtag, Familienstand,\nAltersgruppen", - "Time": "" - }, - { - "Code": "12211-0902", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", - "Time": "2017 - 2021" - }, - { - "Code": "12211-0903", - "Content": "Bev?lkerung in Gemeinschaftsunterk?nften: Bundesl?nder,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", - "Time": "2017 - 2021" - }, - { - "Code": "12211-1001", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1002", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, ?berwiegender Lebensunterhalt, Altersgruppen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1003", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesl?nder,\nJahre, Geschlecht, Gr??enkl. pers?nl. monatl. Nettoeinkommen", - "Time": "2021 - 2021" - }, - { - "Code": "12211-1004", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", - "Time": "2021 - 2021" - }, - { - "Code": "12211-9004", - "Content": "Bev?lkerung, Erwerbst?tige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesl?nder, Jahre (bis 2019)", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9014", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9015", - "Content": "Bev?lkerung (ab 15 Jahren): Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", - "Time": "2005 - 2019" - }, - { - "Code": "12211-9033", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019)", - "Time": "05/1970 - 2019" - }, - { - "Code": "12211-9034", - "Content": "Privathaushalte: Bundesl?nder, Jahre (bis 2019), Haushaltsgr??e", - "Time": "04/1991 - 2019" - }, - { - "Code": "12211-9041", - "Content": "Bev?lkerung in Familien/Lebensformen: Bundesl?nder, Jahre (bis 2019), Lebensformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9044", - "Content": "Familien, Paare, Alleinerziehende: Bundesl?nder, Jahre (bis 2019), Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9047", - "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesl?nder, Jahre (bis 2019),\nVorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9051", - "Content": "Alleinerziehende: Bundesl?nder, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9053", - "Content": "Alleinstehende: Bundesl?nder, Jahre (bis 2019), Geschlecht,\nHaushaltsgr??e", - "Time": "04/1996 - 2019" - }, - { - "Code": "12211-9056", - "Content": "Ledige Kinder in Familien: Bundesl?nder, Jahre (bis 2019),\nFamilienformen", - "Time": "04/1996 - 2019" - }, - { - "Code": "12231-0101", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetaktivit?ten in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12231-0102", - "Content": "Bev?lkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesl?nder, Jahre, Altersgruppen,\nPrivate Internetk?ufe in den letzten drei Monaten", - "Time": "2022 - 2022" - }, - { - "Code": "12251-0101", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder, Jahre, Geschlecht, Stellung im Beruf, Gr??enklassen der in der Arbeitsst?tte t?tigen Personen", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0102", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0103", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0104", - "Content": "Erwerbst?tige aus Hauptwohnsitzhaushalten: Bundesl?nder,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", - "Time": "2021 - 2021" - }, - { - "Code": "12251-0108", - "Content": "Abh?ngig Erwerbst?tige aus Hauptwohnsitzhaushalten:\nBundesl?nder, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", - "Time": "2021 - 2021" - }, - { - "Code": "12411-0010", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag", - "Time": "31.12.1958 - 31.12.2021" - }, - { - "Code": "12411-0011", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0012", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0013", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Geschlecht, Altersjahre", - "Time": "31.12.1967 - 31.12.2021" - }, - { - "Code": "12411-0014", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag, Nationalit?t,\nGeschlecht, Altersjahre", - "Time": "31.12.2000 - 31.12.2021" - }, - { - "Code": "12411-0021", - "Content": "Bev?lkerung: Bundesl?nder, Stichtag zum Quartalsende,\nGeschlecht", - "Time": "31.03.1991 - 30.09.2022" - }, - { - "Code": "12411-0042", - "Content": "Durchschnittliche Bev?lkerung: Bundesl?nder, Jahre,\nNationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12411-0050", - "Content": "Bev?lkerungsdichte: Bundesl?nder, Stichtag", - "Time": "31.12.1995 - 31.12.2020" - }, - { - "Code": "12421-0003", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0004", - "Content": "Vorausberechneter Bev?lkerungsstand: Bundesl?nder, Stichtag,\nVarianten der Bev?lkerungsvorausberechnung, Geschlecht,\nAltersjahre", - "Time": "31.12.2022 - 31.12.2070" - }, - { - "Code": "12421-0101", - "Content": "Vorausberechnete Privathaushalte: Bundesl?nder, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgr??e", - "Time": "2019 - 2040" - }, - { - "Code": "12521-0020", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0021", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "30.09.1980 - 31.12.2021" - }, - { - "Code": "12521-0022", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0023", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0024", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0025", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0026", - "Content": "Ausl?nder: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgew?hlte Aufenthaltstitel,\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0027", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nRegisterbewegungen (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0028", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abg?nge (regional), L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0029", - "Content": "Ausl?nder: Bundesl?nder, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabg?nge (regional),\nL?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "2015 - 2021" - }, - { - "Code": "12521-0030", - "Content": "Durchschnittsalter der Ausl?nder: Bundesl?nder, Stichtag,\nGeschlecht, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12521-0031", - "Content": "Durchschnittliche Aufenthaltsdauer der Ausl?nder:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.1998 - 31.12.2021" - }, - { - "Code": "12531-0020", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0021", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht/\nAltersjahre/Familienstand, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0022", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0023", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, L?ndergruppierungen\n/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0024", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nFamilienstand, L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0025", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinb?rgerungen), L?ndergruppierungen/Staatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0026", - "Content": "Schutzsuchende: Bundesl?nder, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0027", - "Content": "Durchschnittsalter der Schutzsuchenden: Bundesl?nder,\nStichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12531-0028", - "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesl?nder, Stichtag, Geschlecht, L?ndergruppierungen/\nStaatsangeh?rigkeit", - "Time": "31.12.2007 - 31.12.2021" - }, - { - "Code": "12611-0010", - "Content": "Eheschlie?ungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12611-0011", - "Content": "Eheschlie?ungen: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0100", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0101", - "Content": "Lebendgeborene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12612-0102", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Familienstand der\nEltern", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0103", - "Content": "Lebendgeborene: Bundesl?nder, Jahre, Staatsangeh?rigkeit des\nKindes und der Eltern", - "Time": "1990 - 2021" - }, - { - "Code": "12612-0104", - "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesl?nder,\nJahre, Altersgruppen", - "Time": "1991 - 2021" - }, - { - "Code": "12612-0105", - "Content": "Nettoreproduktionsrate: Bundesl?nder, Jahre (bis 2010),\nAltersgruppen", - "Time": "2004 - 2010" - }, - { - "Code": "12612-0106", - "Content": "Totgeborene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0010", - "Content": "Gestorbene: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0011", - "Content": "Gestorbene: Bundesl?nder, Jahre, Geschlecht", - "Time": "1990 - 2021" - }, - { - "Code": "12613-0012", - "Content": "Gestorbene: Bundesl?nder, Monate", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12613-0013", - "Content": "Gestorbene: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 1990 - November 2022" - }, - { - "Code": "12621-0004", - "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesl?nder, Jahre, Geschlecht", - "Time": "2002/04 - 2019/21" - }, - { - "Code": "12631-0010", - "Content": "Ehescheidungen: Bundesl?nder, Jahre", - "Time": "1990 - 2021" - }, - { - "Code": "12631-0011", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Ehedauer", - "Time": "1997 - 2021" - }, - { - "Code": "12631-0012", - "Content": "Ehescheidungen: Bundesl?nder, Jahre, Gemeinsame\nminderj?hrige Kinder", - "Time": "1997 - 2021" - }, - { - "Code": "12651-0003", - "Content": "Begr?ndungen von Lebenspartnerschaften: Bundesl?nder, Jahre (bis 2017), Geschlecht", - "Time": "2014 - 2017" - }, - { - "Code": "12661-0002", - "Content": "Aufhebungen von Lebenspartnerschaften: Bundesl?nder, Jahre,\nGeschlecht", - "Time": "2014 - 2021" - }, - { - "Code": "12711-0020", - "Content": "Gesamtwanderungen ?ber die Grenzen der Bundesl?nder: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0021", - "Content": "Wanderungen zwischen den Bundesl?ndern: Bundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "12711-0023", - "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesl?nder, Jahre, Nationalit?t, Geschlecht", - "Time": "2000 - 2021" - }, - { - "Code": "13111-0005", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Geschlecht", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13111-0006", - "Content": "Sozialversicherungspflichtig Besch?ftigte am Arbeitsort:\nBundesl?nder, Stichtag, Wirtschaftsabschnitte", - "Time": "31.03.2008 - 30.06.2022" - }, - { - "Code": "13211-0007", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Jahre", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0008", - "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesl?nder, Monate", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0009", - "Content": "Arbeitslose: Bundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0010", - "Content": "Arbeitslose: Bundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13211-0011", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Jahre, Geschlecht", - "Time": "1991 - 2022" - }, - { - "Code": "13211-0012", - "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesl?nder, Monate, Geschlecht", - "Time": "Januar 2005 - Februar 2023" - }, - { - "Code": "13311-0002", - "Content": "Erwerbst?tige, Arbeitnehmer, Selbst?ndige und mithelfende\nFamilienangeh?rige (im Inland): Bundesl?nder, Jahre,\nWirtschaftszweige", - "Time": "1991 - 2022" - }, - { - "Code": "14111-0003", - "Content": "Wahlberechtigte, W?hler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesl?nder, Stichtag", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14111-0004", - "Content": "G?ltige Erststimmen, g?ltige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0004", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht", - "Time": "22.09.2002 - 26.09.2021" - }, - { - "Code": "14121-0005", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nAltersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14121-0006", - "Content": "G?ltige Zweitstimmen (Repr?sentative\nBundestagswahlstatistik): Bundesl?nder, Stichtag, Parteien,\nGeschlecht, Altersgruppen", - "Time": "22.09.2013 - 26.09.2021" - }, - { - "Code": "14211-0002", - "Content": "G?ltige Stimmen (Allgemeine Europawahlstatistik):\nBundesl?nder, Stichtag, Parteien", - "Time": "12.06.1994 - 26.05.2019" - } - ], - "Copyright": "? Statistisches Bundesamt (Destatis), 2023" -} diff --git a/tests/testthat/xy_variable3/api/catalogue/tables2variable-93dc8a.json b/tests/testthat/xy_variable3/api/catalogue/tables2variable-93dc8a.json new file mode 100644 index 0000000..9d1e0e0 --- /dev/null +++ b/tests/testthat/xy_variable3/api/catalogue/tables2variable-93dc8a.json @@ -0,0 +1,523 @@ +{ + "Ident": { + "Service": "catalogue", + "Method": "tables2variable" + }, + "Status": { + "Code": 0, + "Content": "erfolgreich", + "Type": "Information" + }, + "Parameter": { + "username": "********************", + "password": "********************", + "name": "DLAND", + "selection": "", + "area": "Alle", + "pagelength": "100", + "language": "de" + }, + "List": [ + { + "Code": "11111-0001", + "Content": "Gebietsfläche: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12211-0902", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Hauptstatus, Geschlecht, Altersgruppen", + "Time": "2017 - 2023" + }, + { + "Code": "12211-0903", + "Content": "Bevölkerung in Gemeinschaftsunterkünften: Bundesländer,\nJahre, Art der Gemeinschaftsunterkunft, Geschlecht", + "Time": "2017 - 2023" + }, + { + "Code": "12211-1001", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Altersgruppen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1002", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen, Nichterwerbspersonen aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Überwiegender Lebensunterhalt, Altersgruppen", + "Time": "2023 - 2023" + }, + { + "Code": "12211-1003", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen aus Hauptwohnsitzhaush.: Bundesländer,\nJahre, Geschlecht, Größenkl. persönl. monatl. Nettoeinkommen", + "Time": "2021 - 2023" + }, + { + "Code": "12211-1004", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Altersgruppen, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12211-9004", + "Content": "Bevölkerung, Erwerbstätige, Erwerbslose, Erwerbspersonen,\nNichterwerbspersonen: Bundesländer, Jahre (bis 2019)", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9014", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Allgemeine Schulausbildung", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9015", + "Content": "Bevölkerung (ab 15 Jahren): Bundesländer, Jahre (bis 2019),\nGeschlecht, Beruflicher Bildungsabschluss", + "Time": "2005 - 2019" + }, + { + "Code": "12211-9033", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019)", + "Time": "05/1970 - 2019" + }, + { + "Code": "12211-9034", + "Content": "Privathaushalte: Bundesländer, Jahre (bis 2019), Haushaltsgröße", + "Time": "04/1991 - 2019" + }, + { + "Code": "12211-9041", + "Content": "Bevölkerung in Familien/Lebensformen: Bundesländer, Jahre (bis 2019), Lebensformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9044", + "Content": "Familien, Paare, Alleinerziehende: Bundesländer, Jahre (bis 2019), Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9047", + "Content": "Ehepaare, Lebensgemeinschaften, Gemischtgeschlechtliche\nLebensgemeinschaften: Bundesländer, Jahre (bis 2019),\nVorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9051", + "Content": "Alleinerziehende: Bundesländer, Jahre (bis 2019),\nGeschlecht, Vorhandensein von Kindern", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9053", + "Content": "Alleinstehende: Bundesländer, Jahre (bis 2019), Geschlecht,\nHaushaltsgröße", + "Time": "04/1996 - 2019" + }, + { + "Code": "12211-9056", + "Content": "Ledige Kinder in Familien: Bundesländer, Jahre (bis 2019),\nFamilienformen", + "Time": "04/1996 - 2019" + }, + { + "Code": "12231-0101", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetaktivitäten in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0102", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nPrivate Internetkäufe in den letzten drei Monaten", + "Time": "2022 - 2023" + }, + { + "Code": "12231-0103", + "Content": "Bevölkerung von 16 bis unter 75 Jahren in\nHauptwohnsitzhaushalten: Bundesländer, Jahre, Altersgruppen,\nArt der Computer- und Internetkenntnisse", + "Time": "2023 - 2023" + }, + { + "Code": "12251-0101", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer, Jahre, Geschlecht, Stellung im Beruf", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0102", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Wochenend- und\nFeiertagsarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0103", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Abend-, Nacht- und\nSchichtarbeit", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0104", + "Content": "Erwerbstätige aus Hauptwohnsitzhaushalten: Bundesländer,\nJahre, Geschlecht, Stellung im Beruf, Erwerbsarbeit zu\nHause", + "Time": "2021 - 2023" + }, + { + "Code": "12251-0108", + "Content": "Abhängig Erwerbstätige aus Hauptwohnsitzhaushalten:\nBundesländer, Jahre, Geschlecht, Altersgruppen, Art des\nArbeitsvertrages", + "Time": "2021 - 2023" + }, + { + "Code": "12411-0010", + "Content": "Bevölkerung: Bundesländer, Stichtag", + "Time": "31.12.1958 - 31.12.2023" + }, + { + "Code": "12411-0011", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0012", + "Content": "Bevölkerung: Bundesländer, Stichtag, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0013", + "Content": "Bevölkerung: Bundesländer, Stichtag, Geschlecht, Altersjahre", + "Time": "31.12.1967 - 31.12.2023" + }, + { + "Code": "12411-0014", + "Content": "Bevölkerung: Bundesländer, Stichtag, Nationalität,\nGeschlecht, Altersjahre", + "Time": "31.12.2000 - 31.12.2023" + }, + { + "Code": "12411-0021", + "Content": "Bevölkerung: Bundesländer, Stichtag zum Quartalsende,\nGeschlecht", + "Time": "31.03.1991 - 31.12.2023" + }, + { + "Code": "12411-0042", + "Content": "Durchschnittliche Bevölkerung: Bundesländer, Jahre,\nNationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12411-0050", + "Content": "Bevölkerungsdichte: Bundesländer, Stichtag", + "Time": "31.12.1995 - 31.12.2022" + }, + { + "Code": "12421-0003", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0004", + "Content": "Vorausberechneter Bevölkerungsstand: Bundesländer, Stichtag,\nVarianten der Bevölkerungsvorausberechnung, Geschlecht,\nAltersjahre", + "Time": "31.12.2022 - 31.12.2070" + }, + { + "Code": "12421-0101", + "Content": "Vorausberechnete Privathaushalte: Bundesländer, Jahre,\nVarianten der Haushaltsvorausberechnung, Haushaltsgröße", + "Time": "2019 - 2040" + }, + { + "Code": "12521-0020", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0021", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht/Altersjahre/\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "30.09.1980 - 31.12.2023" + }, + { + "Code": "12521-0022", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0023", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht, Altersjahre,\nMigrantengeneration, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0024", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0025", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0026", + "Content": "Ausländer: Bundesländer, Stichtag, Geschlecht,\nAufenthaltstitel/Ausgewählte Aufenthaltstitel,\nLändergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0027", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nRegisterbewegungen (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0028", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht, Altersjahre,\nRegisterzu- und abgänge (regional), Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0029", + "Content": "Ausländer: Bundesländer, Jahre, Geschlecht,\nAufenthaltsdauer, Registerabgänge (regional),\nLändergruppierungen/Staatsangehörigkeit", + "Time": "2013 - 2023" + }, + { + "Code": "12521-0030", + "Content": "Durchschnittsalter der Ausländer: Bundesländer, Stichtag,\nGeschlecht, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12521-0031", + "Content": "Durchschnittliche Aufenthaltsdauer der Ausländer:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.1998 - 31.12.2023" + }, + { + "Code": "12531-0020", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0021", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht/\nAltersjahre/Familienstand, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0022", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0023", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAltersjahre, Migrantengeneration, Ländergruppierungen\n/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0024", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nFamilienstand, Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0025", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nAufenthaltsdauer/Aufenthaltsdauer (Abgrenzung\nEinbürgerungen), Ländergruppierungen/Staatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0026", + "Content": "Schutzsuchende: Bundesländer, Stichtag, Geschlecht,\nSchutzstatus/Schutzstatuskategorie, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0027", + "Content": "Durchschnittsalter der Schutzsuchenden: Bundesländer,\nStichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12531-0028", + "Content": "Durchschnittliche Aufenthaltsdauer der Schutzsuchenden:\nBundesländer, Stichtag, Geschlecht, Ländergruppierungen/\nStaatsangehörigkeit", + "Time": "31.12.2007 - 31.12.2023" + }, + { + "Code": "12611-0010", + "Content": "Eheschließungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12611-0011", + "Content": "Eheschließungen: Bundesländer, Monate", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0100", + "Content": "Lebendgeborene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0101", + "Content": "Lebendgeborene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - März 2024" + }, + { + "Code": "12612-0102", + "Content": "Lebendgeborene: Bundesländer, Jahre, Familienstand der\nEltern", + "Time": "1991 - 2023" + }, + { + "Code": "12612-0103", + "Content": "Lebendgeborene: Bundesländer, Jahre, Staatsangehörigkeit des\nKindes und der Eltern", + "Time": "1990 - 2023" + }, + { + "Code": "12612-0104", + "Content": "Zusammengefasste Geburtenziffern (je Frau): Bundesländer,\nJahre, Altersgruppen", + "Time": "1991 - 2022" + }, + { + "Code": "12612-0105", + "Content": "Nettoreproduktionsrate: Bundesländer, Jahre (bis 2010),\nAltersgruppen", + "Time": "2004 - 2010" + }, + { + "Code": "12612-0106", + "Content": "Totgeborene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0010", + "Content": "Gestorbene: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0011", + "Content": "Gestorbene: Bundesländer, Jahre, Geschlecht", + "Time": "1990 - 2023" + }, + { + "Code": "12613-0012", + "Content": "Gestorbene: Bundesländer, Monate", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12613-0013", + "Content": "Gestorbene: Bundesländer, Monate, Geschlecht", + "Time": "Januar 1990 - Mai 2024" + }, + { + "Code": "12621-0004", + "Content": "Durchschnittliche Lebenserwartung bei Geburt\n(Periodensterbetafel): Bundesländer, Jahre, Geschlecht", + "Time": "2002/04 - 2020/22" + }, + { + "Code": "12631-0010", + "Content": "Ehescheidungen: Bundesländer, Jahre", + "Time": "1990 - 2023" + }, + { + "Code": "12631-0011", + "Content": "Ehescheidungen: Bundesländer, Jahre, Ehedauer", + "Time": "1997 - 2023" + }, + { + "Code": "12631-0012", + "Content": "Ehescheidungen: Bundesländer, Jahre, Gemeinsame\nminderjährige Kinder", + "Time": "1997 - 2023" + }, + { + "Code": "12651-0003", + "Content": "Begründungen von Lebenspartnerschaften: Bundesländer, Jahre (bis 2017), Geschlecht", + "Time": "2014 - 2017" + }, + { + "Code": "12661-0002", + "Content": "Aufhebungen von Lebenspartnerschaften: Bundesländer, Jahre,\nGeschlecht", + "Time": "2014 - 2023" + }, + { + "Code": "12711-0020", + "Content": "Gesamtwanderungen über die Grenzen der Bundesländer: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0021", + "Content": "Wanderungen zwischen den Bundesländern: Bundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "12711-0023", + "Content": "Wanderungen zwischen Deutschland und dem Ausland:\nBundesländer, Jahre, Nationalität, Geschlecht", + "Time": "2000 - 2023" + }, + { + "Code": "13111-0005", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Geschlecht", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13111-0006", + "Content": "Sozialversicherungspflichtig Beschäftigte am Arbeitsort:\nBundesländer, Stichtag, Wirtschaftsabschnitte", + "Time": "31.03.2008 - 30.09.2023" + }, + { + "Code": "13211-0007", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Jahre", + "Time": "1991 - 2023" + }, + { + "Code": "13211-0008", + "Content": "Arbeitslose, Arbeitslosenquoten, Gemeldete Arbeitsstellen:\nBundesländer, Monate", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0009", + "Content": "Arbeitslose: Bundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0010", + "Content": "Arbeitslose: Bundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13211-0011", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Jahre, Geschlecht", + "Time": "1991 - 2022" + }, + { + "Code": "13211-0012", + "Content": "Arbeitslosenquote aller zivilen Erwerbspersonen:\nBundesländer, Monate, Geschlecht", + "Time": "Januar 2005 - Juni 2024" + }, + { + "Code": "13311-0002", + "Content": "Erwerbstätige, Arbeitnehmer, Selbständige und mithelfende\nFamilienangehörige (im Inland): Bundesländer, Jahre,\nWirtschaftszweige", + "Time": "1991 - 2023" + }, + { + "Code": "14111-0003", + "Content": "Wahlberechtigte, Wähler, Wahlbeteiligung, Erststimmen,\nZweitstimmen (Allgemeine Bundestagswahlstatistik):\nBundesländer, Stichtag", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14111-0004", + "Content": "Gültige Erststimmen, gültige Zweitstimmen (Allgemeine\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0004", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht", + "Time": "22.09.2002 - 26.09.2021" + }, + { + "Code": "14121-0005", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nAltersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14121-0006", + "Content": "Gültige Zweitstimmen (Repräsentative\nBundestagswahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "22.09.2013 - 26.09.2021" + }, + { + "Code": "14211-0002", + "Content": "Gültige Stimmen (Allgemeine Europawahlstatistik):\nBundesländer, Stichtag, Parteien", + "Time": "12.06.1994 - 09.06.2024" + }, + { + "Code": "14221-0002", + "Content": "Anteil gültiger Stimmen (Repräsentative\nEuropawahlstatistik): Bundesländer, Stichtag, Parteien,\nGeschlecht, Altersgruppen", + "Time": "25.05.2014 - 26.05.2019" + }, + { + "Code": "21111-0010", + "Content": "Schüler, Schulanfänger, Absolventen und Abgänger:\nBundesländer, Schuljahr, Geschlecht", + "Time": "1997/98 - 2022/23" + }, + { + "Code": "21111-0011", + "Content": "Schüler: Bundesländer, Schuljahr, Geschlecht, Schulart,\nJahrgangsstufen", + "Time": "1998/99 - 2022/23" + }, + { + "Code": "21111-0012", + "Content": "Schulanfänger: Bundesländer, Schuljahr, Geschlecht, Schulart, Einschulungsart", + "Time": "1999/00 - 2022/23" + }, + { + "Code": "21111-0013", + "Content": "Absolventen und Abgänger: Bundesländer, Schuljahr,\nGeschlecht, Schulart, Schulabschlüsse", + "Time": "1997/98 - 2021/22" + } + ], + "Copyright": "© Statistisches Bundesamt (Destatis), 2024" +} diff --git a/vignettes/additional_parameter.Rmd b/vignettes/additional_parameter.Rmd index 7e443e3..863f2a3 100644 --- a/vignettes/additional_parameter.Rmd +++ b/vignettes/additional_parameter.Rmd @@ -1,5 +1,5 @@ --- -title: "Additional Parameters for the Genesis API Call" +title: "Additional Parameters for API Calls with {restatis}" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{vignette-additional_parameter} @@ -7,42 +7,39 @@ vignette: > %\VignetteEncoding{UTF-8} --- - - - ```{r eval=FALSE, echo=FALSE} library(restatis) ``` ## Information -This is a brief overview of the additional parameters for the Genesis API call. These parameters only affect the Genesis API call itself, no further processing. - -Not all parameters are available for all functions. +This is a brief overview of the additional parameters for an API call via {restatis}. These parameters only affect the API call itself, not the data processing. Be aware: Not all parameters are available for all functions. -Especially `gen_table()` and `gen_cube()` have a lot of different additional parameters to specify the API call. +Especially `gen_table()` and `gen_cube()` have a lot of different additional parameters to specify the API call. For a detailed overview, see the following official documents: -For a detailed overview, see the following official document: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- The GENESIS database: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- The Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf ## Short Overview of the Most Used Additional Parameters ### Parameter: Selection & Searchcriterion -The `selection`-parameter is a string that specifies the filter to use for filtering the API call. The criterion to which this parameter is applied is defined by the `searchcriterion`-parameter. The maximum length of the string depends on the function being used, but often varies between 10 and 15 characters. It is possible to use '*' as a placeholder. The default for this parameter is NO filtering. +The `selection` parameter is a string that specifies the filter to use for filtering the API call. The criterion to which this parameter is applied to is defined by the `searchcriterion` parameter. The maximum length of the string depends on the function being used, but often times varies between 10 and 15 characters. It is possible to use '\*' as a placeholder. The default for this parameter is *no* filtering. -The `searchcriterion`-parameter is a string that specifies the criteria to be used by the `selection`-parameter. Possible values depend on the function being used, but are often "code" for filtering based on code, or "content" for filtering based on content description. The default for this parameter is NO filter criterion. +The `searchcriterion` parameter is a string that specifies the criterion to be used by the `selection` parameter. Possible values depend on the function being used, but are often times "code" for filtering based on code or "content" for filtering based on the content description. The default for this parameter is *no* filter criterion. Often times, the `searchcriterion` parameter and the `sortcriterion` parameter have the same possible values. Examples: ```{r eval=FALSE} # Get the values of the variable "WAM8" which code starts with "WA29" -gen_val2var("WAM8", selection = "WA29*", searchcriterion = "code") +gen_val2var("WAM8", selection = "WA29*", searchcriterion = "code", database = "genesis") -# Same result can be achieved by the following line due to the default of the "searchcriterion"-parameter: -gen_val2var("WAM8", selection = "WA29*") +# The same result can be achieved by the following line due to the default of the "searchcriterion" parameter: +gen_val2var("WAM8", selection = "WA29*", database = "genesis") ``` ### Parameter: Sortcriterion -The `sortcriterion`-parameter is a string that specifies whether the raw output of the API call is sorted according to the specified input. Possible values depend on the function being used, but often "code" for sorting based on code and "content" for sorting based on content description are possible. The default is NO sorting. +The `sortcriterion` parameter is a string that specifies whether the raw output of the API call is sorted according to the specified input. Possible values depend on the function being used, but often times "code" for sorting based on code and "content" for sorting based on the content description are possible. The default is *no* sorting. Examples: ```{r eval=FALSE} @@ -51,7 +48,7 @@ gen_val2var("WAM8", sortcriterion = "code") ``` ### Parameter: Pagelength -The `pagelength`-parameter is a number between 1 and 2500. It indicates the maximum length of the API call output. Default is 100. +The `pagelength` parameter is a number between 1 and 2500. It indicates the maximum length of the API call output. Default is 100. Examples: ```{r eval=FALSE} @@ -60,7 +57,7 @@ gen_val2var("WAM8", pagelength = 2500) ``` ### Parameter: Language -The `language`-parameter is a string. It indicates if the API call output is in German by using "de" or in English by using "en". Default is "de". +The `language` parameter is a string. It indicates if the API call output is in German by using "de" or in English by using "en". Default is "en" (API default is "de" but it is overwritten by {restatis} to being "en"). Examples: ```{r eval=FALSE} @@ -79,7 +76,7 @@ gen_val2var("WAM8", language = "en") | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" | @@ -87,20 +84,20 @@ gen_val2var("WAM8", language = "en")
gen_catalogue -For cubes: +For cubes: (only GENESIS and regionalstatistik.de) | Parameter | Description | | ----------- | ----------- | -| selection | 1-10 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-10 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | For statistics: | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | | sortcriterion | "code" / "content" | | pagelength | 1-2500 | @@ -110,18 +107,21 @@ For tables: | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on searchcriterion; "*"-Notations are possible | -| searchcriterion | "code" | +| selection | 1-15 characters; filtering based on searchcriterion; "*" notations are possible | +| searchcriterion | "code" / "content" (only Zensus 2022 database) | | sortcriterion | "code" / "top" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" |
gen_cube + see the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +see the following official documentation: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +Only available for GENESIS and regionalstatistik.de
@@ -138,14 +138,15 @@ see the following official documentation: https://www-genesis.destatis.de/genesi gen_list_jobs | Parameter | Description | | ----------- | ----------- | -| selection | 1-50 characters; filtering based on "code" of the objects or searchcriterion; "*"-Notations are possible | -| searchcriterion | "content" / "time" / "status" | -| sortcriterion | "content" / "time" / "status" | +| selection | 1-50 characters; filtering based on "code" of the objects or searchcriterion; "*" notations are possible | +| searchcriterion | "type" / "code" / "time" / "status" | +| sortcriterion | "type" / "code" / "time" / "status" | | pagelength | 1-2500 | | language | "de" / "en" | | type | - | -see more in the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf @@ -154,25 +155,28 @@ see more in the following official documentation: https://www-genesis.destatis.d | Parameter | Description | | ----------- | ----------- | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" *1 | + +*1 for Zensus 2022 database only tables offer the additional parameter "area".
gen_modified_data | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" |
gen_objects2stat -For cubes: +For cubes: (only GENESIS and regionalstatistik.de) | Parameter | Description | | ----------- | ----------- | -| selection | 1-10 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-10 characters; filtering based on "code" of the objects; "*" notations are possible | +| area | "all" / "public" / "user" | | pagelength | 1-2500 | | language | "de" / "en" | @@ -180,62 +184,66 @@ For variables: | Parameter | Description | | ----------- | ----------- | -| selection | 1-6 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-6 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | | sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | | type | - | -see more in the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for the Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf For tables: | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | - +| area | "all" / "public" / "user" |
gen_objects2var -For cubes: +For cubes: (only GENESIS and regionalstatistik.de) | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | For statistics: | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | | sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | For tables: | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on "code" of the objects; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on "code" of the objects; "*" notations are possible | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" |
gen_table -see the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf + +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for the Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf
@@ -243,14 +251,17 @@ see the following official documentation: https://www-genesis.destatis.de/genesi gen_var2stat | Parameter | Description | | ----------- | ----------- | -| selection | 1-6 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-6 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | +| sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | | type | - | -see more in the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for the Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf @@ -258,8 +269,9 @@ see more in the following official documentation: https://www-genesis.destatis.d gen_val2var | Parameter | Description | | ----------- | ----------- | -| selection | 1-15 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-15 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | +| sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | @@ -269,14 +281,17 @@ see more in the following official documentation: https://www-genesis.destatis.d gen_val2var2stat | Parameter | Description | | ----------- | ----------- | -| selection | 1-6 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-6 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | +| sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | | type | - | -see more in the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for the Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf @@ -284,13 +299,37 @@ see more in the following official documentation: https://www-genesis.destatis.d gen_search_vars | Parameter | Description | | ----------- | ----------- | -| selection | 1-6 characters; filtering based on searchcriterion; "*"-Notations are possible | +| selection | 1-6 characters; filtering based on searchcriterion; "*" notations are possible | | searchcriterion | "code" / "content" | +| sortcriterion | "code" / "content" | | pagelength | 1-2500 | | language | "de" / "en" | -| area | - | +| area | "all" / "public" / "user" | | type | - | -see more in the following official documentation: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for GENESIS: https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for the Zensus 2022 database: https://ergebnisse2011.zensus2022.de/datenbank/misc/ZENSUS-Webservices_Einfuehrung.pdf +- See more in the following official documentation for regionalstatistik.de: https://www.regionalstatistik.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf + + + +
+gen_signs + +| Parameter | Description | +| ----------- | ----------- | +| language | "de" / "en" | + +
+ +
+gen_list_results + +| Parameter | Description | +| ----------- | ----------- | +| selection | 1-15 characters; filtering based on "code"; "*" notations are possible | +| area | "all" / "public" / "user" | +| pagelength | 1-2500 | +| language | "de" / "en" |
diff --git a/vignettes/restatis.Rmd b/vignettes/restatis.Rmd index 7081100..3a4d072 100644 --- a/vignettes/restatis.Rmd +++ b/vignettes/restatis.Rmd @@ -7,20 +7,17 @@ vignette: > %\VignetteEncoding{UTF-8} --- - - - -```r +```{r eval=FALSE} library(restatis) ``` ## Introduction -This vignette describes the basic workflow for finding, exploring, and retrieving data from the GENESIS API using [restatis](https://correlaid.github.io/restatis/). +This vignette describes the basic workflow for finding, exploring, and retrieving data from the GENESIS, Zensus 2022 or regionalstatistik.de API using [restatis](https://correlaid.github.io/restatis/). -For more details on additional parameters that can be used to specify the Genesis API call, see `vignette("additional_parameter")`. +For more details on additional parameters that can be used to specify the API call, see `vignette("additional_parameter")`. -For the scenario in this vignette, we are going to be a researcher trying to find data on the income of bus drivers, called "Busfahrer". +For the scenario in this vignette, we are going to be a researcher trying to find data on the income of bus drivers, called "Busfahrer" in German. The following example focuses on the GENESIS database, however, it works practically identical for regionalstatistik.de. For the Zensus 2022 database, the functions also work almost similarly to GENESIS and regionalstatistik.de, but have a few quirks (such as that there are no cubes for Zensus 2022 or that you can also authenticate using an API token). ## Premilinary: finding relevant search terms @@ -28,20 +25,9 @@ First, we can and should explore if and how our keyword is represented in the GE To be as broad as possible, we want to search for any term in the database that contains our keyword. To do this, we can use a "*" wildcard at the beginning and end of the search term: +```{r eval=FALSE} +restatis::gen_alternative_terms(term = "*busfahrer*", database = "genesis") -```r -gen_alternative_terms(term = "*busfahrer*") -#> $Output -#> [1] "busfahrer" -#> -#> attr(,"Term") -#> [1] "*busfahrer*" -#> attr(,"Language") -#> [1] "de" -#> attr(,"Pagelength") -#> [1] "100" -#> attr(,"Copyright") -#> [1] "© Statistisches Bundesamt (Destatis), 2023" ``` Based on the results, our original keyword "busfahrer" is already specific enough, and no additional specifications are necessary. @@ -49,30 +35,9 @@ Based on the results, our original keyword "busfahrer" is already specific enoug Had we started with the keyword "bus" - the vehicle itself - we can see that the database has several related terms that might be helpful to narrow our search radius further. In this example, it might be helpful to see that there are at least three different types of buses that are searchable: "fernbus", "schienenbus" and "kraftomnibusse". -```r -gen_alternative_terms(term = "*bus*") -#> $Output -#> [1] "Bus" "bus" "busin" -#> [4] "Busse" "busse" "bambus" -#> [7] "bussen" "büsche" "cottbus" -#> [10] "fernbus" "a.bambus" "aubussons" -#> [13] "business" "jadebusen" "busfahrer" -#> [16] "busin.and" "bambusmöbel" "bambuswaren" -#> [19] "bustickets" "f.omnibusse" "buschbohnen" -#> [22] "kraftomnibus" "bambussprossen" "büstenhalter" -#> [25] "kraftomnibusse" "businessschool" "freilandbüsche" -#> [28] "busin.sch.berlin" "doppellumentubus" "bambusflechtstoffen" -#> [31] "flugticket, business" "business-class-tarif" -#> [ reached getOption("max.print") -- omitted 68 entries ] -#> -#> attr(,"Term") -#> [1] "*bus*" -#> attr(,"Language") -#> [1] "de" -#> attr(,"Pagelength") -#> [1] "100" -#> attr(,"Copyright") -#> [1] "© Statistisches Bundesamt (Destatis), 2023" +```{r eval=FALSE} +gen_alternative_terms(term = "*bus*", database = "genesis") + ``` ## Search for data objects @@ -80,106 +45,48 @@ gen_alternative_terms(term = "*bus*") Now that we have our specific keyword for our search, we can search the database for exactly that term. We want the results to be ordered so that items with a title that includes our search term are at the top. We also want to explore all object types for now: -```r -search_results <- gen_find( - term = "busfahrer", - detailed = FALSE, - ordering = TRUE, - category = "all" -) -#> Use 'detailed = TRUE' to obtain the complete output. - +```{r eval=FALSE} +search_results <- gen_find(term = "busfahrer", + detailed = FALSE, + ordering = TRUE, + category = "all", + database = "genesis") + search_results -#> $Tables -#> # A tibble: 2 × 3 -#> Code Content Object_Type -#> -#> 1 62361-0030 Bruttostundenverdienste, Bruttomonatsverdienste: Deutschland,… Table -#> 2 62361-0034 Bruttojahresverdienste: Deutschland, Jahre, Geschlecht, Berufe Table -#> -#> $Statistics -#> # A tibble: 1 × 3 -#> Code Content Object_Type -#> -#> 1 62361 Verdiensterhebung Statistic -#> -#> $Variables -#> # A tibble: 1 × 3 -#> Code Content Object_Type -#> -#> 1 KB10A5 Berufsgattungen (KB2010), 5-Steller Variable -#> -#> $Cubes -#> # A tibble: 4 × 3 -#> Code Content Object_Type -#> -#> 1 62361BJ013 Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne So… Cube -#> 2 62361BJ010 Verdiensterhebung, Durchschn. Bruttostundenverdienste ohne So… Cube -#> 3 62361BJ019 Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. So… Cube -#> 4 62361BJ016 Verdiensterhebung, Durchschn. Bruttojahresverdienste inkl. So… Cube -#> -#> attr(,"Term") -#> [1] "busfahrer" -#> attr(,"Language") -#> [1] "de" -#> attr(,"Pagelength") -#> [1] "100" -#> attr(,"Copyright") -#> [1] "© Statistisches Bundesamt (Destatis), 2023" + ``` We can see that we find results for our keyword "busfahrer" in each category of objects (statistics, tables, variables, and cubes). Based on the promising content description of the first cube object, our next step will be to check what it contains before requesting the data. -As a side note, most of the functions in this package will return objects with additional attributes that represent the parameters and additional information of your GENESIS API query. So check the attributes if you ever need help recognising how you got the output. +As a side note, most of the functions in this package will return objects with additional attributes that represent the parameters and additional information of your API query. So check the attributes if you ever need help recognising how you got the output. ## Checking object metadata -To check whether GENESIS data objects are relevant to your interest, you should obtain the metadata for these objects before requesting the data itself. The metadata for each type of object stores different key characteristics that will help you understand what the object is about. +To check whether data objects are relevant to your interest, you should obtain the metadata for these objects before requesting the data itself. The metadata for each type of object stores different key characteristics that will help you understand what the object is about. For our question about the income of bus drivers, we want to check the metadata of the first cube object we got from the find function: -```r -gen_metadata( - code = search_results$Cubes$Code[1], - category = search_results$Cubes$Object_Type[1] -) -#> Error in gen_metadata(code = search_results$Cubes$Code[1], category = search_results$Cubes$Object_Type[1]): could not find function "gen_metadata" +```{r eval=FALSE} +gen_metadata(code = search_results$Cubes$Code[1], + category = search_results$Cubes$Object_Type[1], + database = "genesis") + ``` ## Retrieving data -We are now pretty sure that this cube object will help us find information about our research question. The next step is to get the data from the GENESIS API. - -Based on the fact that we want a cube object, we now use the `gen_cube()` function. For other GENESIS object types, use the corresponding functions (e.g., `gen_table()` for tables). - -Important note: It is not possible to get a whole GENESIS statistic object, but it is possible to collect the different related cube objects independently and then try to recombine them. - - -```r -gen_cube(search_results$Cubes$Code[1]) -#> # A tibble: 2,508 × 20 -#> DINSG GES KB10A5 SMONAT VST045_WERT VST045_QUALITAET VST045_GESPERRT -#> * -#> 1 DG GESM KB10-01104 04/2022 31.3 e NA -#> 2 DG GESM KB10-01203 04/2022 21.6 e NA -#> 3 DG GESM KB10-01302 04/2022 17.4 e NA -#> 4 DG GESM KB10-01402 04/2022 15.3 e NA -#> 5 DG GESM KB10-11101 04/2022 12.8 e NA -#> 6 DG GESM KB10-11102 04/2022 13.7 e NA -#> 7 DG GESM KB10-11103 04/2022 23.6 () NA -#> 8 DG GESM KB10-11104 04/2022 30.8 e NA -#> 9 DG GESM KB10-11113 04/2022 21.4 () NA -#> 10 DG GESM KB10-11114 04/2022 0 / NA -#> # ℹ 2,498 more rows -#> # ℹ 13 more variables: `VST045_WERT-VERFAELSCHT` , VST047_WERT , -#> # VST047_QUALITAET , VST047_GESPERRT , `VST047_WERT-VERFAELSCHT` , -#> # VST051_WERT , VST051_QUALITAET , VST051_GESPERRT , -#> # `VST051_WERT-VERFAELSCHT` , VST052_WERT , VST052_QUALITAET , -#> # VST052_GESPERRT , `VST052_WERT-VERFAELSCHT` -``` +We are now pretty sure that this cube object will help us find information about our research question. The next step is to get the data from the API. + +Based on the fact that we want a cube object, we now use the `gen_cube()` function. For other object types, use the corresponding functions (e.g., `gen_table()` for tables). + +Important note: It is not possible to get a whole statistic object, but it is possible to collect the different related cube objects independently and then try to recombine them. + -TODO: Create helpers to decipher column names. +```{r eval=FALSE} +gen_cube(search_results$Cubes$Code[1], database = "genesis") + +``` ## Appendix: check for changes in previously collected data @@ -187,15 +94,12 @@ As a small additional step, we would like to check one week later if the collect If we only want to check if something related has been updated, we only need to use the first part of the code until we are sure that it only covers the topic we are interested in. For example, use "62361*" if you want to check if some updated objects have been published for the specific statistic "Verdiensterhebung". -For convenience, the functions have already implemented the most common `date` specifications, such as "week_before", "month_before", or "year_before". If you prefer a fixed date, you can enter it as a string in the format "DD-MM-YYYY". +For convenience, the functions have already implemented the most common `date` specifications, such as "week_before", "month_before", or "year_before". If you prefer a fixed date, you can enter it as a string in the format "DD.MM.YYYY". For example, we might want to check to see if something new has been published about our collected cube object. So we use only the first part of the code "62361*": -```r +```{r eval=FALSE} gen_modified_data(code = "62361", date = "week_before") -#> Please note that this date is calculated automatically and may differ -#> from manually entered data. Manually entered data must have -#> the format DD.MM.YYYY. -#> No modified objects found for your code and date. + ```