View source: R/read_econdata.R
| read_econdata | R Documentation |
Returns the data set for the given dataflow - agencyid:id(version) and data provider - agencyid:id, as a list, or as tidy data.table's. Available data sets can be looked up from the data registry (http://www.econdata.co.za/FusionRegistry). Tidying can be done directly within read_econdata(), or ex-post using econdata_tidy().
read_econdata(id, ..., tidy = FALSE) econdata_tidy(x, ...)
id |
Data identifier. | |||||||||||||||||||||||||||||||||
x |
A raw API return object to be tidied. Can also be done directly in | |||||||||||||||||||||||||||||||||
... |
Further Optional arguments:
| |||||||||||||||||||||||||||||||||
tidy |
logical. Return data and metadata in tidy data.table's (see Value), by passing the result through
|
Specifying the full dataflow and data provider details (as opposed to only using the data id) allows more fine-grained control over the data set being queried. This is not necessary if there is only a single definition of the data and a single provider, which is typically the case.
An EconData account (http://app.econdata.co.za) is required to use this function. The user must provide their credentials either through the function arguments, or by setting the ECONDATA_CREDENTIALS environment variable using the syntax: "username;password", e.g. Sys.setenv(ECONDATA_CREDENTIALS="username;password"). If credentials are not supplied by the aforementioned methods a GUI dialog will prompt the user for credentials.
If tidy = FALSE, a list of data frames is returned, where the names of the list are the EconData series codes, and each data frame has a single column named 'OBS_VALUE' containing the data, with corresponding dates attached as rownames. Each data frame further has a "metadata" attribute providing information about the series. The entire list of data frames also has a "metadata" attribute, providing information about the dataset. If multiple datasets (or versions of a dataset if version is left empty) are being queried, a list of such lists is returned.
If tidy = TRUE and wide = TRUE (the default), a single data.table is returned where the first column is the date, and the remaining columns are series named by their EconData codes. Each series has two attributes: "label" provides a variable label combining important metadata from the "metadata" attribute in the non-tidy format, and "source.code" gives the series code assigned by the original data provider. The table has the same dataset-level "metadata" attribute as the list of data frames if tidy = FALSE. If multiple datasets (or versions of a dataset if version is left empty) are being queried, a list of such data.table's is returned.
If tidy = TRUE and wide = FALSE and compact = FALSE (the default), a named list of two data.table's is returned. The first, "data", has columns 'code', 'date' and 'value' providing the data in a long format. The second, "metadata", provides dataset and series-level matadata, with one row for each series. If compact = TRUE, these two datasets are combined, where all repetitive content is converted to factors for more efficient storage. If multiple datasets (or versions of a dataset if version is left empty) are being queried, compact = FALSE gives a nested list, whereas compact = TRUE binds everything together to a single long frame. In general, if wide = FALSE, no attributes are attached to the tables or columns in the tables.
write_econdata
## Not run:
# library(econdatar)
# Sys.setenv(ECONDATA_CREDENTIALS="username;password")
# Ids see: https://www.econdata.co.za/FusionRegistry/data/datastructure.html
# Electricity Generated
ELECTRICITY <- read_econdata(id = "ELECTRICITY")
ELECTRICITY_WIDE <- econdata_tidy(ELECTRICITY) # Or: read_econdata("ELECTRICITY", tidy = TRUE)
ELECTRICITY_LONG <- econdata_tidy(ELECTRICITY, wide = FALSE)
# Same as econdata_tidy(ELECTRICITY, wide = FALSE, combine = TRUE):
with(ELECTRICITY_LONG, metadata[data, on = "code"])
# CPI Analytical Series: Different Revisions
CPI_ANL <- read_econdata(id = "CPI_ANL_SERIES")
CPI_ANL_WIDE <- econdata_tidy(CPI_ANL)
CPI_ANL_LONG <- econdata_tidy(CPI_ANL, wide = FALSE, combine = TRUE)
CPI_ANL_ALLMETA <- econdata_tidy(CPI_ANL, wide = FALSE, allmeta = TRUE) # v2.0 has some 0-obs series
# Can query a specific version by adding e.g. agencyid = "ECONDATA" and version = "2.0" to the call
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.