To find the code options for a given dataset, use
nomis_get_metadata() for specific codes, and
nomis_codelist() for code values.
This can be a slow process if querying significant amounts of
data. Guest users are limited to 25,000 rows per query, although
nomisr identifies queries that will return more than 25,000 rows,
sending individual queries and combining the results of those queries into
a single tibble. In interactive sessions, nomisr will warn you if
guest users are requesting more than 350,000 rows of data, and if
registered users are requesting more than 1,500,000 rows.
Note the difference between the time and date
parameters. The time and date parameters should not be used at the same
time. If they are, the function will retrieve data based on the the
date parameter. If given more than one query, time will
return all data available between those queries, inclusively, while
date will only return data for the exact queries specified. So
time = c("first", "latest") will return all data, while
date = c("first", "latest") will return only the earliest and latest
data published.
Usage
nomis_get_data(
id,
time = NULL,
date = NULL,
geography = NULL,
sex = NULL,
measures = NULL,
additional_queries = NULL,
exclude_missing = FALSE,
select = NULL,
tidy = FALSE,
tidy_style = "snake_case",
query_id = NULL,
...
)Arguments
- id
A string containing the ID of the dataset to retrieve, in
"nm_***_*"format. Theidparameter is not case sensitive.- time
Parameter for selecting dates and date ranges. Accepts either a single date value, or two date values and returns all data between the two date values, There are two styles of values that can be used to query time.
The first is one or two of
"latest"(returns the latest available data),"previous"(the date prior to"latest"),"prevyear"(the date one year prior to"latest") or"first"(the oldest available data for the dataset).The second style is to use or a specific date or multiple dates, in the style of the time variable codelist, which can be found using the
nomis_get_metadata()function.Values for the
timeanddateparameters should not be used at the same time. If they are, the function will retrieve data based on the thedateparameter.Defaults to
NULL.- date
Parameter for selecting specific dates. Accepts one or more date values. If given multiple values, only data for the given dates will be returned, but there is no limit to the number of data values. For example,
date=c("latest, latestMINUS3, latestMINUS6")will return the latest data, data from three months prior to the latest data and six months prior to the latest data. There are two styles of values that can be used to query time.The first is one or more of
"latest"(returns the latest available data),"previous"(the date prior to"latest"),"prevyear"(the date one year prior to"latest") or"first"(the oldest available data for the dataset).The second style is to use or a specific date or multiple dates, in the style of the time variable codelist, which can be found using the
nomis_get_metadata()function.Values for the
timeanddateparameters should not be used at the same time. If they are, the function will retrieve data based on the thedateparameter.Defaults to
NULL.- geography
The code of the geographic area to return data for. If
NULL, returns data for all available geographic areas, subject to other parameters. Defaults toNULL. In the rare instance that a geographic variable does not exist, if notNULL, the function will return an error.- sex
The code for sexes/genders to include in the dataset. Accepts a string or number, or a vector of strings or numbers.
nomisrautomatically voids any queries for sex if it is not an available code in the requested dataset. Defaults toNULLand returns all available sex/gender data.There are two different codings used for sex, depending on the dataset. For datasets using
"SEX",7will return results for males and females,6only females and5only males. Defaults toNULL, equivalent toc(5,6,7)for datasets where sex is an option. For datasets using"C_SEX",0will return results for males and females,1only males and2only females. Some datasets use"GENDER"with the same values as"SEX", which works with bothsex = <code>andgender = <code>as a dot parameter.- measures
The code for the statistical measure(s) to include in the data. Accepts a single string or number, or a list of strings or numbers. If
NULL, returns data for all available statistical measures subject to other parameters. Defaults toNULL.- additional_queries
Any other additional queries to pass to the API. See https://www.nomisweb.co.uk/api/v01/help for instructions on query structure. Defaults to
NULL. Deprecated in package versions greater than 0.2.0 and will eventually be removed in a future version.- exclude_missing
If
TRUE, excludes all missing values. Defaults toFALSE.- select
A character vector of one or more variables to include in the returned data, excluding all others.
selectis not case sensitive.- tidy
Logical parameter. If
TRUE, converts variable names tosnake_case, or another style as specified by thetidy_styleparameter. Defaults toFALSE. The default variable name style from the API is SCREAMING_SNAKE_CASE.- tidy_style
The style to convert variable names to, if
tidy = TRUE. Accepts one of"snake_case","camelCase"and"period.case", or any of thecaseoptions accepted bysnakecase::to_any_case(). Defaults to"snake_case".- query_id
Results can be labelled as belonging to a certain query made to the API.
query_idaccepts any value as a string, and will be included in every row of the tibble returned bynomis_get_datain a column labelled "QUERY_ID" in the default SCREAMING_SNAKE_CASE used by the API. Defaults toNULL.- ...
Use to pass any other parameters to the API. Useful for passing concepts that are not available through the default parameters. Only accepts concepts identified in
nomis_get_metadata()and concept values identified innomis_codelist(). Parameters can be quoted or unquoted. Each parameter should have a name and a value. For example,CAUSE_OF_DEATH = 10300when querying dataset"NM_161_1". Parameters are not case sensitive. Note that R using partial matching for function variables, and so passing a parameter with the same opening characters as one of the above-named parameters can cause an error unless the value of the named parameter is specified, including asNULL. See example below:
Value
A tibble containing the selected dataset. By default, all tibble
columns except for the "OBS_VALUE" column are parsed as characters.
Examples
# \donttest{
# Return data on Jobseekers Allowance for each country in the UK
jobseekers_country <- nomis_get_data(
id = "NM_1_1", time = "latest",
geography = "TYPE499",
measures = c(20100, 20201), sex = 5
)
# Return data on Jobseekers Allowance for Wigan
jobseekers_wigan <- nomis_get_data(
id = "NM_1_1", time = "latest",
geography = "1879048226",
measures = c(20100, 20201), sex = "5"
)
# annual population survey - regional - employment by occupation
emp_by_occupation <- nomis_get_data(
id = "NM_168_1", time = "latest",
geography = "2013265925", sex = "0",
select = c(
"geography_code",
"C_OCCPUK11H_0_NAME", "obs_vAlUE"
)
)
# Deaths in 2016 and 2015 by three specified causes,
# identified with nomis_get_metadata()
death <- nomis_get_data("NM_161_1",
date = c("2016", "2015"),
geography = "TYPE480",
cause_of_death = c(10300, 102088, 270)
)
# All causes of death in London in 2016
london_death <- nomis_get_data("NM_161_1",
date = c("2016"),
geography = "2013265927", sex = 1, age = 0
)
#> Retrieving additional pages 1 of 2
#> Retrieving additional pages 2 of 2
# }
if (FALSE) { # \dontrun{
# Results in an error because `measure` is mistaken for `measures`
mort_data1 <- nomis_get_data(
id = "NM_161_1", date = "2016",
geography = "TYPE464", sex = 0, cause_of_death = "10381",
age = 0, measure = 6
)
# Does not error because `measures` is specified
mort_data2 <- nomis_get_data(
id = "NM_161_1", date = "2016",
geography = "TYPE464", sex = 0, measures = NULL,
cause_of_death = "10381", age = 0, measure = 6
)
} # }
