View source: R/cbs4_get_observations.R
| cbs4_get_observations | R Documentation |
Get observations from table id. Observations are data of a CBS opendata table in so-called long
format.
cbs4_get_observations(
id,
...,
query = NULL,
catalog = "CBS",
download_dir = file.path(tempdir(), id),
show_progress = interactive() && !verbose,
verbose = getOption("cbsodata4.verbose", FALSE),
sep = ",",
includeId = TRUE,
as.data.table = FALSE,
base_url = getOption("cbsodata4.base_url", BASEURL4)
)
id |
Identifier of the Opendata table. Can be retrieved with |
... |
optional selections on data, passed through to cbs4_download. See examples |
query |
optional query in odata4 syntax (overwrites any specification in |
catalog |
Catalog in which the dataset is to be found. |
download_dir |
directory in which the data and metadata is downloaded. By default this is temporary directory, but can be set manually |
show_progress |
if |
verbose |
if |
sep |
separator to be used to download the data. |
includeId |
|
as.data.table |
|
base_url |
Possible other url which implements same protocol. |
The returned data.frame() has the following columns:
A Measure column with identifiers/codes of measures/topics. Detailed information
on Measures can be found with in MeasureCodes using cbs4_get_metadata().
Measure labels can be added with cbs4_add_label_columns().
A Value column with the (numerical) value, Units can be added
with cbs4_add_unit_column().
An optional ValueAttribute column with data point specific metadata.
For each dimension a separate column with category identifiers. Category
labels can be added with cbs4_add_label_columns() or found in cbs4_get_metadata().
Date columns can be added with cbs4_add_date_column().
cbs4_get_data() offers an alternative in which
each variable/topic/Measure has its own column.
data.frame() or data.table() object, see details.
cbs4_get_metadata()
Other data-download:
cbs4_download(),
cbs4_get_data()
if (interactive()){
# filter on Perioden (see meta$PeriodenCodes)
cbs4_get_data("84287NED"
, Perioden = "2019MM12" # december 2019
)
# filter on multiple Perioden (see meta$PeriodenCodes)
cbs4_get_data("84287NED"
, Perioden = c("2019MM12", "2020MM01") # december 2019, january 2020
)
# to filter on a dimension just add the filter to the query
# filter on Perioden (see meta$PeriodenCodes)
cbs4_get_data("84287NED"
, Perioden = "2019MM12" # december 2019
, BedrijfstakkenBranchesSBI2008 = "T001081"
)
# filter on Perioden with contains
cbs4_get_data("84287NED"
, Perioden = contains("2020")
, BedrijfstakkenBranchesSBI2008 = "T001081"
)
# filter on Perioden with multiple contains
cbs4_get_data("84287NED"
, Perioden = contains(c("2019MM1", "2020"))
, BedrijfstakkenBranchesSBI2008 = "T001081"
)
# filter on Perioden with contains or = "2019MM12
cbs4_get_data("84287NED"
, Perioden = contains("2020") | "2019MM12"
, BedrijfstakkenBranchesSBI2008 = "T001081"
)
# This all works on observations too
cbs4_get_observations( id = "80784ned" # table id
, Perioden = "2019JJ00" # Year 2019
, Geslacht = "1100" # code for total gender
, RegioS = contains("PV") # provinces
, Measure = "M003371_2" # topic selection
)
# supply your own odata 4 query
cbs4_get_data("84287NED", query = "$filter=Perioden eq '2019MM12'")
# an odata 4 query will overrule other filter statements
cbs4_get_data("84287NED"
, Perioden = "2018MM12"
, query = "$filter=Perioden eq '2019MM12'"
)
# With query argument an odata4 expression with other (filter) functions can be used
cbs4_get_observations(
id = "80784ned" # table id
,query = paste0( # odata4 query
"$skip=4", # skip the first 4 rows of the filtered result
"&$top=20", # then slice the first 20 rows of the filtered result
"&$select=Measure,Geslacht,Perioden,RegioS,Value", # omit the Id and ValueAttribute fields
"&$filter=endswith(Measure,'_1')") # filter only Measure ending on '_1'
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.