====== Extraction of a variable from the Factbook ====== Here is an example how to obtain (in vector urate) the values of the variable ''unemployment_rate'' > library(jsonlite) > fb <- "https://github.com/iancoleman/cia_world_factbook_api/raw/master/data/factbook.json" > J <- fromJSON(readLines(fb)) > C <- names(J$countries) > head(C) [1] "world" "afghanistan" "akrotiri" "albania" [5] "algeria" "american_samoa" > n <- length(C) > urate <- rep(0,n) > for(ci in 1:n){ + ur <- J$countries[[ci]]$data$economy$unemployment_rate$annual_values + v <- ur$value[1]; d <- ur$date[1] + urate[ci] <- ifelse(is.null(v),NA,v) + year <- ifelse(is.null(d),"0000",d) + cat("U_rate:",format(ci,width=3,justify="r"), + format(urate[ci],width=7,nsmall=2),year,C[ci],"\n") + } U_rate: 1 7.70 2017 world U_rate: 2 23.90 2017 afghanistan U_rate: 3 NA 0000 akrotiri U_rate: 4 5.83 2019 albania U_rate: 5 11.70 2017 algeria U_rate: 6 29.80 2005 american_samoa U_rate: 7 3.70 2016 andorra U_rate: 8 6.60 2016 angola ... U_rate: 257 15.00 2008 zambia U_rate: 258 11.30 2014 zimbabwe U_rate: 259 8.60 2016 european_union > For some countries, we get values for different years. In the example, we are using the most recent value. You could use some more complicated selection of value - for example, the closest to the year 2017. Here is another example for variable ''contraceptive_prevalence_rate'' > crate <- rep(0,n) > for(ci in 1:n){ + cr <- J$countries[[ci]]$data$people$contraceptive_prevalence_rate + v1 <- cr$value[1] + u <- cr$units[1] + d1 <- cr$date[1] + crate[ci] <- ifelse(is.null(v1),NA,v1) + year <- ifelse(is.null(d1),"0000",d1) + cat("C_rate:",format(ci,width=3,justify="r"), + format(crate[ci],width=7,nsmall=2),year,C[ci],"\n") + } C_rate: 1 NA 0000 world C_rate: 2 18.90 2018 afghanistan C_rate: 3 NA 0000 akrotiri C_rate: 4 46.00 2017 albania C_rate: 5 57.10 2012 algeria ... C_rate: 255 NA 0000 western_sahara C_rate: 256 33.50 2013 yemen C_rate: 257 49.50 2018 zambia C_rate: 258 66.80 2015 zimbabwe C_rate: 259 NA 0000 european_union > It is not a very good variable - it contains many NAs. Try to avoid such variables in your project.