Retrieve data and spatial maps from the open data interface (dutch) of Statistics Netherlands (cbs.nl) with R.
From CRAN
The latest development version of cbsodata
can installed using devtools
.
devtools::install_github("edwindj/cbsodataR")
Retrieve a table of contents with all SN tables.
library(cbsodataR)
ds <- cbs_get_datasets("Language" = "en")
head(ds)
## # A tibble: 6 × 25
## Updated Identifier Title ShortTitle ShortDescription Summary
## <dttm> <chr> <chr> <chr> <chr> <chr>
## 1 2023-11-30 00:00:00 80783eng Agricultur… Agricultu… "\nThis table c… "Agric…
## 2 2023-11-30 00:00:00 80784eng Agricultur… Agricultu… "\nThis table c… "Agric…
## 3 2023-12-12 00:00:00 85636ENG Arable cro… Arable cr… "\nThis table p… "area …
## 4 2023-04-03 00:00:00 37738ENG Vegetables… Vegetable… "\nThis table p… "Area …
## 5 2023-06-30 00:00:00 83981ENG Livestock … Livestock… "\nThis table c… "Manur…
## 6 2023-10-12 00:00:00 84952ENG Livestock … Livestock "\nThis table c… "Lives…
## # ℹ 19 more variables: Modified <dttm>, MetaDataModified <dttm>,
## # ReasonDelivery <chr>, ExplanatoryText <chr>, OutputStatus <chr>,
## # Source <chr>, Language <chr>, Catalog <chr>, Frequency <chr>, Period <chr>,
## # SummaryAndLinks <chr>, ApiUrl <chr>, FeedUrl <chr>,
## # DefaultPresentation <chr>, DefaultSelection <chr>, GraphTypes <chr>,
## # RecordCount <int>, ColumnCount <int>, SearchPriority <chr>
or do a search:
res <- cbs_search("apple", language="en")
res[1:3, c(1:4)]
## # A tibble: 3 × 4
## score Updated Identifier Title
## <dbl> <dttm> <chr> <chr>
## 1 0.0503 2023-12-07 00:00:00 85680ENG Trade in goods; border crossing, SITC (…
## 2 0.0356 2023-12-07 00:00:00 85683ENG Trade in goods; border crossing, SITC (…
## 3 0.0337 2023-12-07 00:00:00 85682ENG Trade in goods; border crossing, SITC (…
Use the Identifier
from tables to retrieve table information
cbs_get_meta('71509ENG')
## 71509ENG: 'Yield apples and pears, 1997 - 2017', 2017
## FruitFarmingRegions: 'Fruit farming regions'
## Periods: 'Periods'
##
## Retrieve a default data selection with:
## cbs_get_data(id = "71509ENG", FruitFarmingRegions = c("1", "2",
## "4", "3", "5"), Periods = c("1997JJ00", "2012JJ00", "2013JJ00",
## "2016JJ00"), select = c("FruitFarmingRegions", "Periods", "TotalAppleVarieties_1",
## "CoxSOrangePippin_2", "DelbarestivaleDelcorf_3", "Elstar_4",
## "GoldenDelicious_5", "Jonagold_6", "Jonagored_7", "RodeBoskoopRennetApple_10",
## "OtherAppleVarieties_12", "TotalPearVarieties_13", "Conference_15",
## "DoyenneDuComice_16", "CookingPears_17", "TriompheDeVienne_18",
## "OtherPearVarieties_19", "TotalAppleVarieties_20", "CoxSOrangePippin_21",
## "DelbarestivaleDelcorf_22", "Elstar_23", "GoldenDelicious_24",
## "Jonagold_25", "Jonagored_26", "RodeBoskoopRennetApple_29", "OtherAppleVarieties_31",
## "TotalPearVarieties_32", "Conference_34", "DoyenneDuComice_35",
## "CookingPears_36", "TriompheDeVienne_37", "OtherPearVarieties_38"
## ))
Or download data.
library(dplyr) # just for example's sake
apples <- cbs_get_data("71509ENG")
apples |>
select(1:4)
## # A tibble: 105 × 4
## FruitFarmingRegions Periods TotalAppleVarieties_1 CoxSOrangePippin_2
## <chr> <chr> <int> <int>
## 1 1 1997JJ00 420 43
## 2 1 1998JJ00 518 40
## 3 1 1999JJ00 568 39
## 4 1 2000JJ00 461 27
## 5 1 2001JJ00 408 30
## 6 1 2002JJ00 354 17
## 7 1 2003JJ00 359 17
## 8 1 2004JJ00 436 14
## 9 1 2005JJ00 359 12
## 10 1 2006JJ00 365 11
## # ℹ 95 more rows
add label columns:
apples |>
cbs_add_label_columns() |>
select(1:4)
## # A tibble: 105 × 4
## FruitFarmingRegions FruitFarmingRegions_label Periods Periods_label
## <chr> <fct> <chr> <fct>
## 1 1 Total Netherlands 1997JJ00 1997
## 2 1 Total Netherlands 1998JJ00 1998
## 3 1 Total Netherlands 1999JJ00 1999
## 4 1 Total Netherlands 2000JJ00 2000
## 5 1 Total Netherlands 2001JJ00 2001
## 6 1 Total Netherlands 2002JJ00 2002
## 7 1 Total Netherlands 2003JJ00 2003
## 8 1 Total Netherlands 2004JJ00 2004
## 9 1 Total Netherlands 2005JJ00 2005
## 10 1 Total Netherlands 2006JJ00 2006
## # ℹ 95 more rows
For more information, see vignette("cbsodataR")
Python user? Use cbsodata.