Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
library(OECDdata)
library(data.table)
library(magrittr)
old <- oecdOptions(quiet = TRUE, open_browser = FALSE,
return_data_table = TRUE, strings_as_factors = FALSE)
## ----example------------------------------------------------------------------
x <- oecdExample()
x[, .(REF_AREA, TIME_PERIOD, value_, flags_)]
## ----structure----------------------------------------------------------------
attr(x, "Dimensions")
attr(x, "OECDAttributes")
str(x)
## ----audit--------------------------------------------------------------------
series_keys <- setdiff(attr(x, "Dimensions"), "TIME_PERIOD")
x[, .(observations = .N, missing = sum(is.na(value_))), by = series_keys]
x[, .N, by = OBS_STATUS]
## ----pivot--------------------------------------------------------------------
stopifnot(x[, uniqueN(FREQ)] == 1L, x[, uniqueN(MEASURE)] == 1L,
x[, uniqueN(GROUP)] == 1L,
!anyDuplicated(x, by = c("TIME_PERIOD", "REF_AREA")))
dcast(x, TIME_PERIOD ~ REF_AREA, value.var = "value_")
## ----plot, fig.width=6.5, fig.height=3.5--------------------------------------
one <- x[REF_AREA == "USA"][order(TIME_PERIOD)]
plot(as.Date(paste0(one$TIME_PERIOD, "-01")), one$value_, type = "l",
xlab = "Month", ylab = "Synthetic index", main = "Invented example")
## ----growth-------------------------------------------------------------------
copy(x) %>%
.[, month_id := as.integer(substr(TIME_PERIOD, 1, 4)) * 12L +
as.integer(substr(TIME_PERIOD, 6, 7))] %>%
.[order(month_id), `:=`(previous = shift(value_),
previous_month = shift(month_id)), by = series_keys] %>%
.[, growth_pct := fifelse(!is.na(previous) & previous != 0 &
month_id - previous_month == 1L,
100 * (value_ / previous - 1), NA_real_)] %>%
.[, .(REF_AREA, TIME_PERIOD, growth_pct)]
## ----discovery, eval=FALSE----------------------------------------------------
# OECDdata::find("health expenditure")
# OECDdata::find(education, expenditure)
# browseDataList(grepl("employment", `Dataset name`, ignore.case = TRUE))
#
# code <- "CLI"
# s <- oecdStructure(code)
# s$flow
# s$dimensions
# s$labels$REF_AREA
# importLabels("REF_AREA", dataset = code)
# describe(code, wide = TRUE)
## ----resolve, eval=FALSE------------------------------------------------------
# ref <- oecdDataset("CLI", agency = "OECD.SDD.STES", prefix = "DSD_STES")
# ref
# importLabels(OECDDimCode = "REF_AREA", dataset = ref)
#
# # A query preview fetches metadata but does not download observations.
# oecdQuery("CLI", filters = list(
# .dataset = list(agency = "OECD.SDD.STES", prefix = "DSD_STES"),
# REF_AREA = "USA", FREQ = "M", TIME_PERIOD = c("2023-01", "2023-12")
# ))
## ----live, eval=FALSE---------------------------------------------------------
# cli <- importData(code, list(REF_AREA = c("USA", "FRA"), FREQ = "M",
# TIME_PERIOD = c("2023-01", "2023-12")))
# attr(cli, "SourceURL")
# attr(cli, "OECDDatasetCode")
## ----provenance---------------------------------------------------------------
attributes(x)[c("RequestedDatasetCode", "OECDDatasetCode", "DownloadTime",
"SourceURL", "Dimensions")]
## ----persistent, eval=FALSE---------------------------------------------------
# oecdOptions(cache_dir = tools::R_user_dir("OECDdata", "cache"))
# # First make a successful online request with the desired metadata and filters.
# # Then use offline = TRUE with the same request.
# saveRDS(list(data = cli, provenance = attributes(cli)), "cli-snapshot.rds")
## ----restore, include=FALSE---------------------------------------------------
options(old)
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.