Find available datasets
source("get-opendata-catalogue-fun.R")
Catalogue <- get_odata_catalogue(
service="https://api.stats.govt.nz/opendata/v1",
endpoint="data.json",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)
print(Catalogue[,c("distribution")]) distribution$accessURL $title $description $format
<chr> <chr> <chr> <chr>
1 https://api.stats.govt.nz/odata/v1/EmploymentIndicators Employment In… "This employment indicator series is intended to provide an early… api
2 https://api.stats.govt.nz/odata/v1/OverseasCargo Overseas Cargo…"Overseas cargo records all goods, value and gross weight, loaded… api
3 https://api.stats.govt.nz/odata/v1/Covid-19Indicators Covid19 Indica…"Stats NZ's COVID-19 data portal indicators gather key high-frequ… api
Using the first accessURL from the cataloge, find the entities in the service data model
source("get-odata-fun.R")
ServiceEntities <- Filter(function(x)!all(is.na(x)),
get_odata(
service = "https://api.stats.govt.nz/opendata/v1",
endpoint = "EmploymentIndicators",
entity = "",
query_option = "",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
print(ServiceEntities) name kind url
1 Resources EntitySet Resources
2 Observations EntitySet Observations
Using the service entity list, get 10 rows for each entity
Observations <- Filter(function(x)!all(is.na(x)),
get_odata(
service = "https://api.stats.govt.nz/opendata/v1",
endpoint = "EmploymentIndicators",
entity = "Observations",
query_option = "$select=ResourceID,Period,Duration,Label1,Label2,Value,Unit,Measure,Multiplier&$top=10",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
print(Observations) ResourceID Period Duration Label1 Label2 Value Unit Measure Multiplier
1 MEI1.1 1999-04-30 P1M All industries Actual 1454212.0000 Number Filled jobs 0
2 MEI1.1 1999-04-30 P1M All industries Seasonally adjusted 1450296.0000 Number Filled jobs 0
3 MEI1.1 1999-04-30 P1M All industries Seasonally adjusted 3473.7750 NZD Total earnings 6
4 MEI1.1 1999-04-30 P1M All industries Trend 1417940.0000 Number Filled jobs 0
5 MEI1.1 1999-04-30 P1M Goods-producing industries Seasonally adjusted 295021.0000 Number Filled jobs 0
6 MEI1.1 1999-04-30 P1M Goods-producing industries Seasonally adjusted 820.1100 NZD Total earnings 6
7 MEI1.1 1999-04-30 P1M Goods-producing industries Trend 288930.0000 Number Filled jobs 0
8 MEI1.1 1999-04-30 P1M Goods-producing industries Trend 832.5339 NZD Total earnings 6
9 MEI1.1 1999-04-30 P1M Primary industries Actual 80267.0000 Number Filled jobs 0
10 MEI1.1 1999-04-30 P1M Primary industries Actual 130.7833 NZD Total earnings 6
Resources <- Filter(function(x)!all(is.na(x)),
get_odata(
service = "https://api.stats.govt.nz/opendata/v1",
endpoint = "EmploymentIndicators",
entity = "Resources",
query_option = "$select=ResourceID,Title,Var1,Var2,Modified,Frequency&$top=10",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
print(Resources) ResourceID Title Var1 Var2 Modified Frequency
1 MEI1.1 Employment Indicators by published industries MEI Published industries Treatment 2020-09-27T21:45:00Z Monthly
Example use of filtering:
Observations <- Filter(function(x)!all(is.na(x)),
get_odata(
service = "https://api.stats.govt.nz/opendata/v1",
endpoint = "EmploymentIndicators",
entity = "Observations",
query_option = "$filter=(
ResourceID eq 'MEI1.1' and
Period ge 2020-08-31 and
Label2 eq 'Actual' and
Duration eq 'P1M'
)
&$select=ResourceID,Period,Duration,Label1,Label2,Value,Unit,Measure,Multiplier
&$top=10",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
print(Observations) ResourceID Period Duration Label1 Label2 Value Unit Measure Multiplier
1 MEI1.1 2020-08-31 P1M All industries Actual 10934.7751 NZD Total earnings 6
2 MEI1.1 2020-08-31 P1M Goods-producing industries Actual 421476.0000 Number Filled jobs 0
3 MEI1.1 2020-08-31 P1M Goods-producing industries Actual 2298.0504 NZD Total earnings 6
4 MEI1.1 2020-08-31 P1M Service industries Actual 1662420.0000 Number Filled jobs 0
5 MEI1.1 2020-08-31 P1M All industries Actual 2185024.0000 Number Filled jobs 0
6 MEI1.1 2020-08-31 P1M Primary industries Actual 101128.0000 Number Filled jobs 0
7 MEI1.1 2020-08-31 P1M Primary industries Actual 442.6769 NZD Total earnings 6
8 MEI1.1 2020-08-31 P1M Service industries Actual 8194.0477 NZD Total earnings 6
Example use of groupby: find all unique combination of values for Label1, Label2 and Measure
Observations <- Filter(function(x)!all(is.na(x)),
get_odata(
service = "https://api.stats.govt.nz/opendata/v1",
endpoint = "EmploymentIndicators",
entity = "Observations",
query_option = "$filter=(
ResourceID eq 'MEI1.1' and
Period ge 2020-08-31 and
Duration eq 'P1M'
)
&$apply=groupby((Label1,Label2,Measure))
&$top=10",
service_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
print(Observations) Label1 Label2 Measure
1 All industries Actual Filled jobs
2 All industries Actual Total earnings
3 All industries Seasonally adjusted Filled jobs
4 All industries Seasonally adjusted Total earnings
5 All industries Trend Filled jobs
6 All industries Trend Total earnings
7 Goods-producing industries Actual Filled jobs
8 Goods-producing industries Actual Total earnings
9 Goods-producing industries Seasonally adjusted Filled jobs
10 Goods-producing industries Seasonally adjusted Total earnings