#' Function accesses the Stat-Xplore API and returns data relating
#' to Nino Registrations from the EU and outside the EU. This data is used
#' to construct a time series graph of these registrations over time.
#' @param start_date start date of data we want: month must be one of 3,6,9,12 so "2017-03-01" is valid "2017-01-01" is not
#' @param end_date what date do we want data until
#' @param frequency One of quarter, month, annual
#' @param date_hashmap
#' @param apiKey apiKey for stat-xplore: you will need to create an account to generate a key
#' @param get_countries if TRUE will get all nationalities, used for top 5 table in publication.
#' @param verbose if true, it will return information sent to the Stat-Xplore server.
#' @return class containing data and other attributes useful for plotting
#' @examples \dontrun{eu_non_eu_total("2002-03-01", "2018-12-01", "quarter", 3, TRUE)}
#' @source \url{https://stat-xplore.dwp.gov.uk/webapi/jsf/login.xhtml}
#' @export
eu_non_eu_total <- function(start_date, end_date, frequency, get_countries=FALSE, verbose = FALSE, apiKey = NULL) {
if (is.null(apiKey)) {
apiKey <- "65794a30655841694f694a4b563151694c434a68624763694f694a49557a49314e694a392e65794a7063334d694f694a7a644849756333526c6247786863694973496e4e3159694936496d5268626d35355a6a4532514768766447316861577775593239744969776961574630496a6f784e54517a4f5445354f4455304c434a68645751694f694a7a6448497562325268496e302e70496474346b5763677546564d42486b6773484f306a6d5f536d556b6a33586e574946527041516f794f6f"
}
assertthat::is.string(start_date)
assertthat::is.string(end_date)
assertthat::is.string(frequency)
assertthat::assert_that(frequency %in% c("month", "quarter", "day", "year"))
assertthat::is.string(apiKey)
out <- tryCatch(
expr = {
# Generate API call for paritcular dates
date_list <- generate_date_sequence(start_date, end_date, frequency)
dates <- date_list[[1]]
length_dates <- date_list[[2]]
# Generate JSON date sequence, hashmap to look up quarters
from_date = date_hashmap[start_date][[1]]
to_date = date_hashmap[end_date][[1]]
num_quarters = seq(from=from_date, to=to_date, by=1)
quarters <- lapply(num_quarters, function(x) paste('["str:value:NINO:f_NINO:QTR:c_QTR:',x,'"',']' ,sep=""))
quarters_final <- paste(quarters, collapse=",")
# generate world areas for api call
country_code_list = c("14", "13", "12", "11", "10", "9", "8", "7", "6", "3", "2", "1")
areas <- lapply(country_code_list, function(x) paste('["str:value:NINO:f_NINO:NEWNAT:C_NINO_SUBGROUP:',x,'"',']' ,sep=""))
areas <- paste(areas, collapse = ",")
# get all individual countries: used for Top 5 nationalities
if (get_countries==TRUE) {
body <- '{"database":"str:database:NINO","measures":["str:count:NINO:f_NINO"],"recodes":{"str:field:NINO:f_NINO:NEWNAT":{"map":[["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:101"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:102"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:103"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:104"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:105"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:106"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:107"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:108"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:109"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:110"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:111"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:112"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:113"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:114"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:201"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:202"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:203"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:204"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:205"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:206"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:207"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:208"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:211"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:212"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:209"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:210"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:213"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:301"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:302"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:303"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:304"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:305"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:306"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:307"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:308"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:309"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:310"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:311"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:312"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:314"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:315"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:316"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:317"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:318"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:319"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:320"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:321"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:324"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:603"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:708"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:501"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:502"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:503"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:504"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:515"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:516"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:517"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:519"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:522"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:524"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:531"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:534"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:535"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:536"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:537"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:538"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:539"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:540"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:543"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:547"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:509"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:510"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:511"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:518"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:520"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:521"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:528"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:544"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:505"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:506"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:513"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:530"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:532"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:542"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:548"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:551"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:507"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:508"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:512"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:514"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:523"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:525"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:526"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:527"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:529"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:533"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:541"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:545"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:546"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:402"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:403"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:404"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:405"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:406"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:407"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:408"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:409"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:410"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:411"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:412"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:413"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:414"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:415"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:416"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:418"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:419"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:420"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:421"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:422"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:423"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:424"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:425"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:426"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:427"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:429"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:430"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:431"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:433"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:434"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:436"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:437"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:438"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:439"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:440"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:441"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:442"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:443"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:444"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:445"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:446"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:447"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:449"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:450"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:451"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:453"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:455"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:456"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:457"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:401"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:417"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:428"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:432"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:435"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:448"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:452"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:454"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:601"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:602"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:639"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:652"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:604"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:605"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:606"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:607"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:608"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:609"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:610"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:611"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:612"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:613"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:614"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:615"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:616"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:617"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:618"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:619"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:620"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:621"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:622"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:623"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:624"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:625"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:626"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:627"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:628"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:629"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:630"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:631"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:632"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:633"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:634"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:635"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:636"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:637"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:638"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:640"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:641"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:642"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:643"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:644"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:645"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:646"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:647"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:648"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:650"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:651"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:653"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:654"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:655"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:549"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:550"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:649"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:701"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:702"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:703"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:704"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:705"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:706"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:707"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:709"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:710"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:711"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:712"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:713"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:714"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:715"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:716"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:717"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:718"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:719"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:720"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:721"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:722"],
["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:723"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_COUNTRY:999"]],"total":true},"str:field:NINO:f_NINO:QTR":{"map":[["str:value:NINO:f_NINO:QTR:c_QTR:61"],["str:value:NINO:f_NINO:QTR:c_QTR:62"],["str:value:NINO:f_NINO:QTR:c_QTR:63"],["str:value:NINO:f_NINO:QTR:c_QTR:64"],["str:value:NINO:f_NINO:QTR:c_QTR:65"],["str:value:NINO:f_NINO:QTR:c_QTR:66"],["str:value:NINO:f_NINO:QTR:c_QTR:67"],["str:value:NINO:f_NINO:QTR:c_QTR:68"]],"total":true}},"dimensions":[["str:field:NINO:f_NINO:QTR"],["str:field:NINO:f_NINO:NEWNAT"]]}'
}else {
# need to convert to string
body <- paste0('{"database":"str:database:NINO","measures":["str:count:NINO:f_NINO"],"recodes":{"str:field:NINO:f_NINO:NEWNAT":{"map":[["str:value:NINO:f_NINO:NEWNAT:C_NINO_WORLDAREA:1"],',areas,',["str:value:NINO:f_NINO:NEWNAT:C_NINO_WORLDAREA:2"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_WORLDAREA:3"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_WORLDAREA:4"],["str:value:NINO:f_NINO:NEWNAT:C_NINO_WORLDAREA:9"]],"total":true},"str:field:NINO:f_NINO:QTR":{"map":[',quarters_final,'],"total":true}},"dimensions":[["str:field:NINO:f_NINO:QTR"],["str:field:NINO:f_NINO:NEWNAT"]]}', sep='')
}
if (verbose==TRUE) {
request <- httr::POST("https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table", httr::add_headers(apiKey = apiKey),
body = body,
encode = "json", httr::verbose())
}
request <- httr::POST("https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table", httr::add_headers(apiKey = apiKey),
body = body,
encode = "json")
get2json<- httr::content(request, as = "parsed")
parse2json<- jsonlite::toJSON(get2json, pretty=TRUE) # returns raw data
parse_df <- as.data.frame(t(sapply(parse2json, jsonlite::fromJSON)))
title <- parse_df$database[[1]]$label
# Extract dates
data_values <- parse_df$cubes[[1]][[1]][[1]]
date_labels <- unlist(parse_df$fields[[1]][[4]][[1]]$labels)
nrows = dim(data_values)[1]
ncols = dim(data_values)[2]
date_labels <- date_labels[1:nrows-1]
# destination labels
origin <- unlist(parse_df$fields[[1]][[4]][[2]]$labels)
# create data frame
df <- as.data.frame(data_values)
colnames(df) <- gsub(" ", "_", origin)
colnames(df) <- gsub("-", "_", colnames(df))
#create non-eu data
if (get_countries==FALSE) {
df <- df %>% dplyr::mutate(non_eu = Total - European_Union)
}
totals <- df[nrows,]
df <- df[1:nrows-1,]
#Create class
x = structure(
list(
df = df,
#df_year_to_date_sum =
title = title,
colnames = colnames(df),
dates = dates,
date_labels = date_labels
),
class = "eu_non_eu_data")
return(x)
##
},
warning = function() {
w <- warnings()
warning('Warning produced running in eu_non_eu_total():', w)
},
error = function(e) {
stop('Error produced running eu_non_eu_total():', e)
},
finally = {}
)
}
generate_date_sequence <- function(start_date, end_date, frequency) {
dates <- seq(lubridate::ymd(start_date), lubridate::ymd(end_date), by = frequency)
N = length(dates)
return(list(dates, N))
}
#data <- eu_non_eu_total("2017-03-01", "2018-12-01", "quarter")
# Year to date for quarterly data
# df_new <- zoo::rollapply(df, 4, sum, by.column=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.