knitr::opts_chunk$set(collapse = T, comment = "#>") NOT_CRAN <- identical(tolower(Sys.getenv("NOT_CRAN")), "true") knitr::opts_chunk$set(purl = NOT_CRAN)
library(rscorecard) df <- sc_init() %>% sc_filter(region == 2, ccbasic == c(21,22,23), locale == 41:43) %>% sc_select(unitid, instnm, stabbr) %>% sc_year(2013) %>% sc_get() df
sc_init() to start the command chain. The only real option is whether you want to use standard variable names (as they are found in IPEDS) or the new developer-friendly variable names developed for the Scorecard API. Unless you have good reason for doing so, I recommend using the default standard names. If you want to use the developer-friendly names, set
dfvars = TRUE. Whichever you choose, you're stuck with that option for the length of piped command chain;
no switching from one type to another.
sc_get() as the last command in the chain. If you haven't used
sc_key to store your data.gov API key in the system environment, then you must supply your key as an argument.
The following commands are structured to behave like
can be placed in any order in the piped command chain and each one relies (for the most part) on non-standard evaluation for its arguments. This means that you don't have to quote variable names.
sc_select() to select the variables (columns) you want in your final dataframe. These variables do not have to be the same as those used to filter the data and are case insensitive. Separate the variable names with commas. The Scorecard API requires that most of the variables be prepended with their category.
sc_select() uses a hash table to do this automatically for you so you do not have to know or include those (and in fact should not). This command is the only one of the subsetting commands that is required to pull data.
sc_filter() to filter the rows you want in your final dataframe. Its main job is to convert idiomatic R code into the format required by the Scorecard API. Like
sc_filter prepends variable categories automatically and variables are case insensitive. Like with
dplyr::filter(), separate each filtering expression with a comma.There are a few points to note owing to the idiosyncracies of the Scorecard API. First, there are the conversions between R and the Scorecard, shown in the table below.
sc_filter(stabbr == c('KY','TN'))|
sc_filter(stabbr != 'KY')|
sc_filter(instnm == 'New York')|
A few notes:
c(1,2,5:10)), it does not appear that Scorecard API can. You will either have to overselect and then filter the downloaded dataframe or list every value discretely.
<symbols. This means that if you want to select a range of values above a certain threshold (e.g., enrollments above 10,000 students), you may have to give a range of from 10001 to an artifically large number. Same thing but reversed for values under a certain threshold.
1:10will convert to
__range=1..10and include both 1 and 10.
All Scorecard variables except those in the root and school categories take a year option. Simply set the data year you want.
Two important points:
sc_zip() to subset the sample to those institutions within a certain distance around a given zip code. Only one zip code may be given. The default is
distance is 25 miles, but both the distance and metric (miles or kilometers) can be changed.
Once you've gotten your API key from https://api.data.gov/signup, you can store it usig
sc_key(). In the absence of a key value argument,
sc_get() will search your R environment for
DATAGOV_API_KEY. It will complete the data request if found.
sc_key() command will store your key in
DATAGOV_API_KEY, which will persist until the R session is closed.
# NB: You must use a real key, of course... sc_key('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
If you want a more permanent solution, you can add the following line (with your actual key, of course) to your
.Renviron file. See this appendix for more information.
# NB: You must use a real key, of course... DATAGOV_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
## public schools within 50 miles of midtown Nashville, TN df <- sc_init() %>% sc_filter(control == 1) %>% sc_select(unitid, instnm, stabbr) %>% sc_year(2013) %>% sc_zip(37203, 50) %>% sc_get() df
## median earnings for students who first enrolled in a public ## college in the New England or Mid-Atlantic regions: 10 years later df <- sc_init() %>% sc_filter(control == 1, region == 1:2, ccbasic == 1:24) %>% sc_select(unitid, instnm, md_earn_wne_p10) %>% sc_year(2009) %>% sc_get() df
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.