| Title: | Download and Analyze Spatial Development Data from 'INKAR' |
| Version: | 0.6.6 |
| Description: | A professional R interface to download and analyze spatial development indicators from the 'BBSR' 'INKAR' (Indicators and Maps for Spatial and Urban Development) database. Features a bilingual interactive wizard, fuzzy and normalized indicator search, multi-indicator downloads with automatic tidy merging (long/wide), guaranteed consistent output schema, robust disk caching with automatic retry, and 'ggplot2' themes for regional mapping. |
| URL: | https://github.com/ofurkancoban/inkaR |
| BugReports: | https://github.com/ofurkancoban/inkaR/issues |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| Language: | en-US |
| LazyData: | true |
| RoxygenNote: | 7.3.3 |
| Imports: | httr2, jsonlite, tibble, dplyr, rlang, utils, cli, tidyr |
| Suggests: | stringdist, testthat (≥ 3.0.0), withr, knitr, rmarkdown, sf, geodata, ggplot2, httptest2, pkgdown, lifecycle |
| VignetteBuilder: | knitr |
| Depends: | R (≥ 4.1.0) |
| Config/testthat/edition: | 3 |
| NeedsCompilation: | no |
| Packaged: | 2026-06-29 12:08:55 UTC; ofurkancoban |
| Author: | Omer Furkan Coban |
| Maintainer: | Omer Furkan Coban <oemer.furkan.coban@uni-oldenburg.de> |
| Repository: | CRAN |
| Date/Publication: | 2026-06-29 13:00:24 UTC |
inkaR: Access the INKAR Database of the BBSR
Description
The inkaR package provides a user-friendly interface to access, search, and download statistical indicators from the INKAR (Indikatoren und Karten zur Raum- und Stadtentwicklung) database provided by the Federal Institute for Research on Building, Urban Affairs and Spatial Development (BBSR).
Main Functions
-
view_indicators(): Opens the list of available indicators in a viewer. Supports German ("de") and English ("en") modes. Sorted by active status. -
get_inkar_data(): API wrapper to fetch data for a specific indicator. Supports auto-saving to CSV (csv = TRUE). -
get_geographies(): Helper to list available spatial levels (e.g., Kreise, Gemeinden) or regions within a level. -
search_indicators(): Search for indicators by text pattern.
Usage Workflow
-
Explore: Use
view_indicators()to find theShortname(e.g., "001") orM_IDof the desired indicator. -
Download: Use
get_inkar_data("001", level="KRE", year=2021)or ranges (year=2010:2020) to fetch the data. -
Export: Add
csv = TRUEtoget_inkar_datato save the result immediately.
Author(s)
Maintainer: Omer Furkan Coban oemer.furkan.coban@uni-oldenburg.de (ORCID)
See Also
Useful links:
Examples
if (interactive()) {
# 1. View available indicators (German)
view_indicators()
# 2. View in English
view_indicators("en")
}
# 3. Search for "GDP" (Bruttoinlandsprodukt)
try(search_indicators("GDP", lang = "en"))
# 4. Download data for GDP (011) for Districts (KRE)
# Note: You can use Shortnames ("011"), numeric M_IDs (11), or simple codes ("bip")
try(data <- get_inkar_data("011", level = "KRE", year = 2021, lang = "de", csv = FALSE))
# 5. Download and save directly as CSV
try(get_inkar_data("011", csv = TRUE, export_dir = tempdir()))
# 6. Download data for a year range
try(get_inkar_data("011", level = "KRE", year = 2010:2020))
Clear INKAR Cache
Description
Clears the persistent disk cache used for API responses (like time reference metadata).
Usage
clear_inkar_cache()
Value
No return value, called for side effects.
Filter Downloaded Data to Specific Districts
Description
A specialized wrapper around compare_regions() to filter a data frame returned
by get_inkar_data() to rows matching specific district names or IDs (Kennziffer).
Usage
compare_districts(data, districts, exact = FALSE)
compare_district(data, districts, exact = FALSE)
Arguments
data |
A data frame returned by |
districts |
Character/Numeric vector. District names, IDs, or partial patterns to keep. |
exact |
Logical. If |
Value
A filtered tibble.
Examples
df <- try(get_inkar_data("011", level = "KRE", year = 2021, lang = "en"))
if (is.data.frame(df)) compare_districts(df, c("Berlin", "Hamburg"))
Filter Downloaded Data to Specific Regions
Description
Filters a data frame returned by get_inkar_data() to rows matching the
supplied region names (partial, case-insensitive match by default).
Usage
compare_regions(data, regions, exact = FALSE)
compare_region(data, regions, exact = FALSE)
Arguments
data |
A data frame returned by |
regions |
Character vector. Region names or partial patterns to keep. |
exact |
Logical. If |
Value
A filtered tibble.
Examples
df <- try(get_inkar_data("011", level = "KRE", year = 2021, lang = "en"))
if (is.data.frame(df)) compare_regions(df, c("Berlin", "Hamburg"))
Get Available Geographies or Region List
Description
Retrieves a list of available spatial levels (if geography is NULL) or
a list of regions for a specific level (e.g., "KRE").
Usage
get_geographies(geography = NULL)
Arguments
geography |
Character. Spatial level code (e.g. "KRE"). If NULL, returns all levels. |
Value
A data frame with ID and Name.
List Available Indicators
Description
Returns a data frame of available indicators with bilingual support.
Usage
get_indicators(lang = c("de", "en"))
Arguments
lang |
Language code: "de" (German) or "en" (English). |
Value
A tibble containing indicator IDs, names, and descriptions.
Download Data from INKAR
Description
Retrieves statistical data for a given variable and spatial level. Automatically handles time reference lookup.
Usage
get_inkar_data(
variable,
level = "KRE",
year = NULL,
lang = c("de", "en"),
format = c("long", "wide"),
csv = FALSE,
export_dir = NULL
)
Arguments
variable |
Character. The indicator ID (Shortname), e.g., "011". |
level |
Character. Spatial level code (e.g., "KRE" for Kreise). |
year |
Integer/Character vector. Specific year (e.g., 2021) or range (e.g., 2010:2020). If NULL, fetches all available years. |
lang |
Character. "de" (default) for German column names, "en" for English. |
format |
Character. "long" (default) for tidy format, "wide" for years as columns. |
csv |
Logical. If TRUE, saves the data to a CSV file in the directory specified by |
export_dir |
Character. Directory to save the CSV file if |
Value
A tibble containing the data.
List Available Indicator Themes
Description
Returns the unique theme/domain values present in the local indicators
dataset. Pass one of these values to the theme argument of
search_indicators() or view_indicators() to narrow results.
Usage
get_themes()
Value
A sorted character vector of theme names.
Examples
get_themes()
INKAR Indicators Metadata
Description
A comprehensive list of available indicators from the INKAR database. This dataset is used to lookup indicator IDs, names, and descriptions.
Usage
indicators
Format
A data frame with the following columns:
- ID
Short identifier (e.g., "001")
- M_ID
Numeric internal ID used by API
- Name_DE
German name of the indicator
- Name_EN
English name (translated or placeholder)
- Description_DE
Detailed German description
- Description_EN
Detailed English description (available for 413 indicators)
- Theme
Group/Domain of the indicator
- Active
Logical. TRUE if verified as active in the API
- Algorithmus
Algorithm used (if any)
- Anmerkungen
Notes in German
- Anmerkungen_EN
Notes in English
- Gemeinden
Availability for Municipalities
- Kreise
Availability for Districts
- Statistische Grundlagen
Statistical basis (DE)
- Stat_Grund_EN
Statistical basis (EN)
- Unit_DE
Unit of measurement (DE)
- Unit_EN
Unit of measurement (EN)
Source
Download Data from INKAR (Interactive Alias)
Description
A full-featured alias for get_inkar_data() with bilingual support and an
interactive wizard when called without arguments (in interactive sessions).
Call inkaR("011") to download directly, or inkaR() to open the wizard.
Usage
inkaR(variable = NULL, level = NULL, year = NULL, lang = c("de", "en"), ...)
Arguments
variable |
Character. Indicator ID, shortname, or partial name.
If |
level |
Character. Spatial level code (e.g., |
year |
Integer/Character vector or |
lang |
Character. |
... |
Additional arguments passed to |
Details
For a simpler English-first shortcut, see inkar().
Value
A tibble containing the downloaded data, or NULL if selection was cancelled.
Examples
if (interactive()) {
df <- inkaR() # opens interactive menu
}
try(df <- inkaR("bip", level = "KRE", year = 2021))
try(df <- inkaR("Bruttoinlandsprodukt", level = "KRE"))
Download INKAR Data (English Shortcut)
Description
A convenience wrapper around get_inkar_data() with English output and
year = "latest" as defaults. Equivalent to calling
get_inkar_data(variable, level, year = "latest", lang = "en").
Usage
inkar(variable, level = "KRE", year = "latest", lang = "en", ...)
Arguments
variable |
Character. Indicator ID, short name, or partial name. |
level |
Character. Spatial level code (default |
year |
Integer/Character vector or |
lang |
Character. Output language (default |
... |
Additional arguments passed to |
Value
A tibble with English column names.
Examples
try(df <- inkar("011", level = "KRE"))
try(df <- inkar("011", level = "KRE", year = 2019:2021))
Plot Time Series Trends for INKAR Indicators
Description
Creates a ggplot2 line chart showing how indicator values change over time
for selected regions. Input must be a long-format data frame from
get_inkar_data().
Usage
inkar_trends(data, regions = NULL, title = NULL, mode = c("light", "dark"))
Arguments
data |
A long-format data frame from |
regions |
Optional character vector. Region names (partial match) to
include. If |
title |
Optional character. Custom plot title. Defaults to indicator name. |
mode |
Character. |
Value
A ggplot2 object.
Examples
df <- try(get_inkar_data("011", level = "KRE", lang = "en"))
if (is.data.frame(df)) {
inkar_trends(df, regions = c("Berlin", "Hamburg", "München"))
}
Plot INKAR Data on German Maps
Description
Automatically projects regional INKAR data onto administrative boundaries of Germany using
the geodata and sf packages. Supports Bund (BND), Bundeslaender (BLD), Kreise (KRE),
and Gemeinden (GEM) levels. Alternatively, a custom sf geometry can be provided.
Usage
plot_inkar(
data,
variable = NULL,
year = NULL,
mode = c("light", "dark"),
highlight = NULL,
breaks = c("equal", "quantile"),
title = NULL,
geom = NULL
)
Arguments
data |
A data frame returned by |
variable |
Character. For wide-format data with multiple indicators, specify which indicator column to plot. |
year |
Integer/Character. If the data contains multiple years, specify which year to plot. If NULL and multiple years exist, the most recent year is plotted. |
mode |
Character. "light" (default) or "dark" theme. |
highlight |
Character vector. Region names (partial match) to highlight; all other regions are shown at reduced opacity. |
breaks |
Character. Color scale break method: |
title |
Character. Custom plot title. Defaults to the indicator name. |
geom |
Optional |
Value
A ggplot2 object displaying the mapped data.
Search Indicators and Print Results
Description
Search for indicators by keyword. Prints a formatted table and invisibly
returns the matches so you can copy the ID for use in inkaR().
Usage
search_indicators(pattern, lang = c("de", "en"), theme = NULL)
Arguments
pattern |
Text to search in names and descriptions. |
lang |
Language to search in ("de" or "en"). |
theme |
Optional character. Filter to a specific theme/domain before
searching. Use |
Value
A filtered tibble of indicators (invisibly).
Interactively Select an Indicator
Description
Opens a GUI selection list (e.g., in RStudio) to browse and pick an indicator.
For code-based workflows, use inkaR("name") or search_indicators() instead.
Usage
select_indicator(pattern = NULL, lang = c("de", "en"))
Arguments
pattern |
Optional character. Pre-filter the list by a keyword or regex.
If |
lang |
Language for names: |
Value
Character. The selected indicator ID, or NULL if cancelled.
Interactively Select a Spatial Level
Description
Provides an interactive console menu to choose an INKAR spatial level. If a variable ID is provided, it probes the live API to find which levels actually have data for that indicator.
Usage
select_level(variable = NULL)
Arguments
variable |
Optional character. The indicator ID to probe available levels. |
Value
Character. The selected level ID, e.g., "KRE".
Interactively Select Years
Description
Probes the API for available years for a specific indicator and level, then allows the user to select one or more years.
Usage
select_years(variable, level)
Arguments
variable |
Indicator ID. |
level |
Spatial level ID. |
Value
Character vector of years.
Premium ggplot2 theme for inkaR
Description
Premium ggplot2 theme for inkaR
Usage
theme_inkaR(mode = c("light", "dark"), base_size = 11)
Arguments
mode |
Character. "light" or "dark". |
base_size |
Numeric. Base font size. |
Refresh Local Indicators Metadata
Description
Checks the INKAR API for new indicators not present in the local
indicators dataset. The check is informational only; reinstall
the package to permanently add new indicators to local metadata.
Usage
update_indicators(lang = c("de", "en"))
Arguments
lang |
Character. Language for messages: |
Value
Invisibly returns the local indicators tibble.
View Indicators in RStudio Viewer
Description
Opens the available indicators in the RStudio data viewer for easy filtering and searching.
Usage
view_indicators(lang = c("de", "en"), theme = NULL)
Arguments
lang |
Language code: "de" (German) or "en" (English). |
theme |
Optional character. Filter to a specific theme/domain before
opening the viewer. Use |
Value
Invokes View() on the data frame.