# The examples call the BFS APIs: they run on the pkgdown site only, not on # CRAN, where the APIs can be unavailable or rate-limit the check machines. knitr::opts_chunk$set( collapse = TRUE, comment = "#>", message = FALSE, warning = FALSE, eval = identical(Sys.getenv("IN_PKGDOWN"), "true") )
BFS gives you the open data of the Swiss Federal Statistical Office (BFS, Bundesamt für Statistik) in R. You get tidy data frames, in German, French, Italian or English.
On this page, you learn:
The BFS publishes its data with four APIs. The package has functions for each of them:
| You want | Use | API |
|---|---|---|
| Statistics of the Swiss Stats Explorer | bfs_sse_datasets(), bfs_sse_dimensions(), bfs_sse_data() | Swiss Stats Explorer (SDMX) |
| Datasets of the BFS data catalog | bfs_get_catalog_data(), bfs_get_metadata(), bfs_get_data() | STAT-TAB (PXWeb) |
| Tables and files (Excel, CSV, PX, ...) | bfs_get_catalog_tables(), bfs_download_asset() | DAM |
| Maps and geodata | bfs_get_base_maps(), bfs_get_catalog_geodata(), bfs_download_geodata() | ThemaKart, STAC |
DF_LWZ_1.px-x-1502040100_131.The BFS is replacing STAT-TAB with the Swiss Stats Explorer. It moves its data cubes to the new platform, one statistic at a time. Then it will switch off STAT-TAB. The BFS announcement gives the dates.
What this means for your code:
bfs_get_data(), bfs_get_metadata() and bfs_get_data_comments() use
STAT-TAB. They will stop working when STAT-TAB is switched off.::: {.callout .callout-tip} For new code, use the Swiss Stats Explorer if the statistic is there. Use STAT-TAB only for the data that is not there yet. :::
library(BFS)
Let's get the vacancy rate (the share of empty homes, in %) of the cantons
of Geneva, Zurich and Bern. The dataset is DF_LWZ_1, the vacant
dwellings. You find this id with bfs_sse_datasets(), or in the URL of the
dataset on stats.swiss.
First, see the dimensions of the dataset and the codes of their values:
dimensions <- bfs_sse_dimensions("DF_LWZ_1", language = "en") dimensions
Then download the data. In filters, give the codes you want for each
dimension:
bfs_sse_data( "DF_LWZ_1", filters = list( GR_KT_GDE = c("GE", "ZH", "BE"), # the cantons of Geneva, Zurich and Bern WOHN_ANZAHL = "_T", # all numbers of rooms LEERWOHN_TYP = "_T", # all types of vacant dwellings MEASURE_DIMENSION = "RATE" # the vacancy rate, in % ), start_period = "2020", language = "en" )
The article Swiss Stats Explorer explains each step of this example.
Search the BFS data catalog. Then download a dataset with its BFS number:
bfs_get_catalog_data(language = "en", extended_search = "university students") bfs_get_data(number_bfs = "px-x-1502040100_131", language = "en")
The article Data catalog and PXWeb datasets shows how to search the catalog and download only a part of a dataset.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.