I. Exposition

# Attach these packages so their functions don't need to be qualified: http://r-pkgs.had.co.nz/namespace.html#search-path
library(magrittr) #Pipes
library(dplyr) # disable when temp lines are removed
library(ggplot2)
library(ggpubr)
library(readxl)
# Call `base::source()` on any repo file that defines functions needed below.  Ideally, no real operations are performed.
base::source("./scripts/common-functions.R")
# path_file_input_data       <- "./data-unshared/raw/2016-03-25 - AllSentences_small.xlsx"
# path_file_input_data       <- "./data-unshared/raw/2017-10-04  AllSentences_updated_small.xlsx"
path_file_input_data       <- "./data-unshared/raw/2017-10-04  AllSentences_updated.xlsx"
#Put code in here.  It doesn't call a chunk in the codebehind file.

I.A. Data

ds      <- readxl::read_excel(path_file_input_data,sheet = "AllSentences" )
meta      <- readxl::read_excel(path_file_input_data,sheet = "Codebook" )

ds %>% dplyr::glimpse(100)
Observations: 120,381
Variables: 47
$ `ID Number`               <dbl> 53731, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913...
$ Idnumbercomb              <dbl> 44473, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913...
$ `Previous ID`             <dbl> 44473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37142, 0, 0, 0, 0, 0, 0,...
$ `Inmate Name`             <chr> "AARON                     BOBBY", "AARON                    ...
$ `Parole Eligibility Date` <dttm> 2003-05-09, 1994-03-20, 2000-08-18, 2007-04-11, 1996-08-11, ...
$ `Tentative Release Date`  <dttm> 2006-02-10, 1994-07-20, 2001-02-15, 2008-04-11, 1997-09-26, ...
$ `Earn Dschrg Dt`          <dttm> NA, NA, NA, 2008-03-21, 1997-04-10, NA, NA, NA, NA, NA, 1988...
$ `Actual Dschrg Dt`        <dttm> NA, NA, NA, 2008-03-21, NA, NA, NA, NA, NA, NA, 1988-01-30, ...
$ `Good Time Law`           <dbl> 6, 4, 6, 6, 4, 4, 4, 4, 1, 1, 1, 4, 7, 6, 7, 7, 7, 6, 1, 6, 6...
$ `Docket Count`            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
$ County                    <chr> "BUFFALO", "LANCASTER", "MADISON", "DOUGLAS", "DOUGLAS", "DOU...
$ `County CD`               <dbl> 10, 55, 59, 28, 28, 28, 28, 28, 28, 28, 55, 55, 27, 72, 19, 4...
$ `Offense Begin Date`      <chr> "36655", "1800-01-01", "36756", "38581", "1800-01-01", "1800-...
$ `Offense Count`           <dbl> 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
$ `Offense Attmpt CD`       <chr> NA, "A", NA, NA, NA, NA, NA, NA, NA, NA, "A", NA, NA, NA, "A"...
$ `Offense Type CD`         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, "A", NA, NA, NA, NA, NA, ...
$ `Offense Run CD`          <chr> "CC", "CC", "CC", "CC", "CC", "CC", "CS", "CS", "CC", "CC", "...
$ `Offense Arrest CD`       <chr> "C31", "D21", "B26", "C31", "D20", "B12", "K02", "C31", "E62"...
$ `Offense Arrest`          <chr> "MANU/DIST/DEL/DISP OR POSS W/I", "THEFT", "SEXUAL ASSAULT ON...
$ `Cnvct Desc`              <chr> "POSSESSION CON SUB W/I DELIVER", NA, NA, "POSSESSION W/I DEL...
$ `Felony Msdmnr CD`        <chr> "3F", "F", "3AF", "3F", "4F", "4F", "3F", "2F", NA, NA, "4F",...
$ `Min Year`                <dbl> 4, 1, 0, 4, 1, 2, 4, 4, 1, 0, 1, 1, 1, 4, 1, 2, 5, 4, 1, 0, 1...
$ `Min Month`               <dbl> 0, 8, 0, 0, 6, 0, 0, 0, 4, 0, 0, 3, 8, 0, 6, 0, 0, 0, 8, 0, 0...
$ `Min Day`                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Max Year`                <dbl> 10, 2, 1, 6, 3, 4, 6, 6, 2, 1, 2, 2, 5, 7, 3, 3, 5, 6, 3, 1, ...
$ `Max Month`               <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Max Day`                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Year`                <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Month`               <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Day`                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Offense Jail Time Days`  <dbl> 91, 0, 2, 125, 0, 0, 0, 0, 0, 0, 1, 86, 145, 134, 51, 3, 385,...
$ `Offense Dead Time Days`  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 589, 0, 0...
$ `Habitual Criminal`       <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "...
$ `Precedence IND`          <chr> NA, NA, NA, "P", NA, NA, NA, NA, NA, NA, "P", "P", NA, "P", "...
$ `PE Date Chg CD`          <dbl> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
$ `Minimum Yr`              <dbl> 4, 1, 0, 4, 1, 10, 10, 10, 1, 1, 1, 1, 1, 4, 1, 2, 5, 4, 1, 1...
$ `Minimum Mo`              <dbl> 0, 8, 0, 0, 6, 0, 0, 0, 4, 4, 0, 3, 8, 0, 6, 0, 0, 0, 8, 0, 0...
$ `Minimum  Day`            <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Maximum Yr`              <dbl> 10, 2, 1, 6, 3, 16, 16, 16, 2, 2, 2, 2, 5, 7, 3, 3, 5, 6, 3, ...
$ `Maximum Mo`              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Maximum Day`             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Begin Date`              <dttm> 2000-05-09, 1993-05-21, 2000-08-18, 2005-08-17, 1996-01-23, ...
$ `Sentence Jail Credit`    <dbl> 91, 0, 2, 125, 100, 71, 71, 71, 0, 0, 1, 86, 145, 134, 51, 3,...
$ `Man Min Yr`              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Min Mo`              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Min Day`             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ `Man Min Term Date`       <dttm> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
# adjust column names
colnames(ds) <- gsub(" " ,"_",colnames(ds)) %>% tolower()
colnames(ds) <- gsub("__","_",colnames(ds)) # remove doubles

ds <- ds %>% 
  dplyr::rename_(
    "person_id" = "idnumbercomb"
  ) %>% 
  dplyr::mutate(
    conviction_id  = paste0(person_id,"-",offense_arrest_cd)
    ,year          = lubridate::year(begin_date)
    ,offense_group = substr(offense_arrest_cd,1,1)
    # ,offense_group = gsub("^(\\w{1})(\\d{2}))$","\\1", offense_arrest_cd)
  )

ds %>% glimpse(100)
Observations: 120,381
Variables: 50
$ id_number               <dbl> 53731, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913, ...
$ person_id               <dbl> 44473, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913, ...
$ previous_id             <dbl> 44473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37142, 0, 0, 0, 0, 0, 0, 1...
$ inmate_name             <chr> "AARON                     BOBBY", "AARON                     B...
$ parole_eligibility_date <dttm> 2003-05-09, 1994-03-20, 2000-08-18, 2007-04-11, 1996-08-11, 19...
$ tentative_release_date  <dttm> 2006-02-10, 1994-07-20, 2001-02-15, 2008-04-11, 1997-09-26, 20...
$ earn_dschrg_dt          <dttm> NA, NA, NA, 2008-03-21, 1997-04-10, NA, NA, NA, NA, NA, 1988-0...
$ actual_dschrg_dt        <dttm> NA, NA, NA, 2008-03-21, NA, NA, NA, NA, NA, NA, 1988-01-30, NA...
$ good_time_law           <dbl> 6, 4, 6, 6, 4, 4, 4, 4, 1, 1, 1, 4, 7, 6, 7, 7, 7, 6, 1, 6, 6, ...
$ docket_count            <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
$ county                  <chr> "BUFFALO", "LANCASTER", "MADISON", "DOUGLAS", "DOUGLAS", "DOUGL...
$ county_cd               <dbl> 10, 55, 59, 28, 28, 28, 28, 28, 28, 28, 55, 55, 27, 72, 19, 40,...
$ offense_begin_date      <chr> "36655", "1800-01-01", "36756", "38581", "1800-01-01", "1800-01...
$ offense_count           <dbl> 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, ...
$ offense_attmpt_cd       <chr> NA, "A", NA, NA, NA, NA, NA, NA, NA, NA, "A", NA, NA, NA, "A", ...
$ offense_type_cd         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, "A", NA, NA, NA, NA, NA, NA...
$ offense_run_cd          <chr> "CC", "CC", "CC", "CC", "CC", "CC", "CS", "CS", "CC", "CC", "CC...
$ offense_arrest_cd       <chr> "C31", "D21", "B26", "C31", "D20", "B12", "K02", "C31", "E62", ...
$ offense_arrest          <chr> "MANU/DIST/DEL/DISP OR POSS W/I", "THEFT", "SEXUAL ASSAULT ON A...
$ cnvct_desc              <chr> "POSSESSION CON SUB W/I DELIVER", NA, NA, "POSSESSION W/I DELIV...
$ felony_msdmnr_cd        <chr> "3F", "F", "3AF", "3F", "4F", "4F", "3F", "2F", NA, NA, "4F", "...
$ min_year                <dbl> 4, 1, 0, 4, 1, 2, 4, 4, 1, 0, 1, 1, 1, 4, 1, 2, 5, 4, 1, 0, 1, ...
$ min_month               <dbl> 0, 8, 0, 0, 6, 0, 0, 0, 4, 0, 0, 3, 8, 0, 6, 0, 0, 0, 8, 0, 0, ...
$ min_day                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ max_year                <dbl> 10, 2, 1, 6, 3, 4, 6, 6, 2, 1, 2, 2, 5, 7, 3, 3, 5, 6, 3, 1, 1,...
$ max_month               <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ max_day                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_year                <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_month               <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_day                 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ offense_jail_time_days  <dbl> 91, 0, 2, 125, 0, 0, 0, 0, 0, 0, 1, 86, 145, 134, 51, 3, 385, 3...
$ offense_dead_time_days  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 589, 0, 0, ...
$ habitual_criminal       <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"...
$ precedence_ind          <chr> NA, NA, NA, "P", NA, NA, NA, NA, NA, NA, "P", "P", NA, "P", "P"...
$ pe_date_chg_cd          <dbl> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ minimum_yr              <dbl> 4, 1, 0, 4, 1, 10, 10, 10, 1, 1, 1, 1, 1, 4, 1, 2, 5, 4, 1, 1, ...
$ minimum_mo              <dbl> 0, 8, 0, 0, 6, 0, 0, 0, 4, 4, 0, 3, 8, 0, 6, 0, 0, 0, 8, 0, 0, ...
$ minimum_day             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ maximum_yr              <dbl> 10, 2, 1, 6, 3, 16, 16, 16, 2, 2, 2, 2, 5, 7, 3, 3, 5, 6, 3, 1,...
$ maximum_mo              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ maximum_day             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ begin_date              <dttm> 2000-05-09, 1993-05-21, 2000-08-18, 2005-08-17, 1996-01-23, 19...
$ sentence_jail_credit    <dbl> 91, 0, 2, 125, 100, 71, 71, 71, 0, 0, 1, 86, 145, 134, 51, 3, 3...
$ man_min_yr              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_min_mo              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_min_day             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ man_min_term_date       <dttm> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
$ conviction_id           <chr> "44473-C31", "44473-D21", "54131-B26", "62706-C31", "47816-D20"...
$ year                    <dbl> 2000, 1993, 2000, 2005, 1996, 1995, 1995, 1995, 1989, 1989, 198...
$ offense_group           <chr> "C", "D", "B", "C", "D", "B", "K", "C", "E", "E", "D", "B", "C"...
ds %>% saveRDS("./data-unshared/derived/0-dto.rds")

meta %>% readr::write_csv("./data-public/derived/all-sentences-codebook.csv")

II. Development

# focus on a few variables
d1 <- ds %>%
  dplyr::mutate(
    conviction_id  = paste0(person_id,"-",offense_arrest_cd)
    ,year          = lubridate::year(begin_date)
    ,offense_group = substr(offense_arrest_cd,1,1)
    # ,offense_group = gsub("^(\\w{1})(\\d{2}))$","\\1", offense_arrest_cd)
  ) %>% 
  dplyr::select_(.dots = c(
    "person_id"
    ,"begin_date"
    ,"offense_arrest_cd"
    ,"offense_arrest"
    ,"conviction_id"
    ,"year"
    ,"offense_group"
    )
  )
d1 %>% glimpse(100)
Observations: 120,381
Variables: 7
$ person_id         <dbl> 44473, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913, 92913,...
$ begin_date        <dttm> 2000-05-09, 1993-05-21, 2000-08-18, 2005-08-17, 1996-01-23, 1995-03-...
$ offense_arrest_cd <chr> "C31", "D21", "B26", "C31", "D20", "B12", "K02", "C31", "E62", "E63",...
$ offense_arrest    <chr> "MANU/DIST/DEL/DISP OR POSS W/I", "THEFT", "SEXUAL ASSAULT ON A CHILD...
$ conviction_id     <chr> "44473-C31", "44473-D21", "54131-B26", "62706-C31", "47816-D20", "466...
$ year              <dbl> 2000, 1993, 2000, 2005, 1996, 1995, 1995, 1995, 1989, 1989, 1986, 199...
$ offense_group     <chr> "C", "D", "B", "C", "D", "B", "K", "C", "E", "E", "D", "B", "C", "C",...
d2 <- d1 %>% 
  dplyr::mutate(
    conviction_id = paste0(person_id,"-",offense_arrest_cd)
    ,year         = lubridate::year(begin_date)
    # ,offense_group = gsub("^(\\w{1})(\\d{2}))$","\\1", offense_arrest_cd)
    ,offense_group = substr(offense_arrest_cd,1,1)
  )

d2 %>% glimpse(100)
Observations: 120,381
Variables: 7
$ person_id         <dbl> 44473, 44473, 54131, 62706, 47816, 46628, 46628, 46628, 92913, 92913,...
$ begin_date        <dttm> 2000-05-09, 1993-05-21, 2000-08-18, 2005-08-17, 1996-01-23, 1995-03-...
$ offense_arrest_cd <chr> "C31", "D21", "B26", "C31", "D20", "B12", "K02", "C31", "E62", "E63",...
$ offense_arrest    <chr> "MANU/DIST/DEL/DISP OR POSS W/I", "THEFT", "SEXUAL ASSAULT ON A CHILD...
$ conviction_id     <chr> "44473-C31", "44473-D21", "54131-B26", "62706-C31", "47816-D20", "466...
$ year              <dbl> 2000, 1993, 2000, 2005, 1996, 1995, 1995, 1995, 1989, 1989, 1986, 199...
$ offense_group     <chr> "C", "D", "B", "C", "D", "B", "K", "C", "E", "E", "D", "B", "C", "C",...
d2 %>% group_by(offense_group) %>% count() %>% neat() # rows
offense_group n
A 1180
B 27171
C 21229
D 31779
E 9632
F 2084
G 664
H 8910
J 3
K 6429
L 106
M 8176
Z 2709
NA 309
d2 %>% group_by(offense_group) %>% summarize(n=length(unique(person_id))) %>% neat() # persons
offense_group n
A 1074
B 17925
C 14865
D 16862
E 5046
F 1562
G 316
H 6581
J 2
K 4986
L 65
M 5119
Z 2467
NA 278
# type of offense total
d2 %>% 
  dplyr::filter(year > 1974) %>% 
  dplyr::group_by(offense_group) %>% 
  dplyr::count() %>% 
  ggplot2::ggplot(aes(x = offense_group, y = n ))+
  geom_bar(stat = "identity")+
  coord_flip()+
  theme_minimal()

# type of offsen by year
d2 %>% 
  dplyr::filter(year > 1974) %>% 
  dplyr::group_by(offense_group, year) %>% 
  dplyr::count() %>% 
  ggplot2::ggplot(aes(x = year, y = offense_group, fill = n ))+
  # geom_raster()+
  geom_tile(color = "grey80")+
  scale_fill_gradient2( high = "red")+
  theme_minimal()

# type of drug offense by year
d2 %>% 
  dplyr::filter(year > 1974) %>% 
  dplyr::filter(offense_group == "C") %>% 
  dplyr::group_by(offense_arrest, year) %>% 
  dplyr::count() %>% 
  ggplot2::ggplot(aes(x = year, y = offense_arrest, fill = n ))+
  geom_tile(color = "grey80")+
  scale_fill_gradient2( high = "blue")+
  # scale_fill_gradient2( high = "red")+
  theme_minimal()

# see our research jounal https://docs.google.com/document/d/1_EhkXgkBZTJ8nc02rr8Z4wrbzSbvvT6VZoQJi6DAhNQ/edit?usp=sharing

III.

Session Information

For the sake of documentation and reproducibility, the current report was rendered in the following environment. Click the line below to expand.

Environment

- Session info -------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.5.2 (2018-12-20)
 os       Windows >= 8 x64            
 system   x86_64, mingw32             
 ui       RStudio                     
 language (EN)                        
 collate  English_United States.1252  
 ctype    English_United States.1252  
 tz       America/New_York            
 date     2019-04-16                  

- Packages -----------------------------------------------------------------------------------------------------------
 package     * version date       lib source        
 assertthat    0.2.0   2017-04-11 [1] CRAN (R 3.5.2)
 backports     1.1.3   2018-12-14 [1] CRAN (R 3.5.2)
 bindr         0.1.1   2018-03-13 [1] CRAN (R 3.5.2)
 bindrcpp    * 0.2.2   2018-03-29 [1] CRAN (R 3.5.2)
 callr         3.1.1   2018-12-21 [1] CRAN (R 3.5.2)
 cellranger    1.1.0   2016-07-27 [1] CRAN (R 3.5.2)
 cli           1.0.1   2018-09-25 [1] CRAN (R 3.5.2)
 colorspace    1.4-0   2019-01-13 [1] CRAN (R 3.5.2)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 3.5.2)
 desc          1.2.0   2018-05-01 [1] CRAN (R 3.5.2)
 devtools      2.0.1   2018-10-26 [1] CRAN (R 3.5.2)
 digest        0.6.18  2018-10-10 [1] CRAN (R 3.5.2)
 dplyr       * 0.7.8   2018-11-10 [1] CRAN (R 3.5.2)
 evaluate      0.13    2019-02-12 [1] CRAN (R 3.5.2)
 fansi         0.4.0   2018-10-05 [1] CRAN (R 3.5.2)
 fs            1.2.6   2018-08-23 [1] CRAN (R 3.5.2)
 ggplot2     * 3.1.0   2018-10-25 [1] CRAN (R 3.5.2)
 ggpubr      * 0.2     2018-11-15 [1] CRAN (R 3.5.3)
 glue          1.3.0   2018-07-17 [1] CRAN (R 3.5.2)
 gtable        0.2.0   2016-02-26 [1] CRAN (R 3.5.2)
 highr         0.7     2018-06-09 [1] CRAN (R 3.5.2)
 hms           0.4.2   2018-03-10 [1] CRAN (R 3.5.2)
 htmltools     0.3.6   2017-04-28 [1] CRAN (R 3.5.2)
 httr          1.4.0   2018-12-11 [1] CRAN (R 3.5.2)
 kableExtra    1.0.1   2019-01-22 [1] CRAN (R 3.5.2)
 knitr       * 1.21    2018-12-10 [1] CRAN (R 3.5.2)
 labeling      0.3     2014-08-23 [1] CRAN (R 3.5.2)
 lazyeval      0.2.1   2017-10-29 [1] CRAN (R 3.5.2)
 lubridate     1.7.4   2018-04-11 [1] CRAN (R 3.5.2)
 magrittr    * 1.5     2014-11-22 [1] CRAN (R 3.5.2)
 memoise       1.1.0   2017-04-21 [1] CRAN (R 3.5.2)
 munsell       0.5.0   2018-06-12 [1] CRAN (R 3.5.2)
 pillar        1.3.1   2018-12-15 [1] CRAN (R 3.5.2)
 pkgbuild      1.0.2   2018-10-16 [1] CRAN (R 3.5.2)
 pkgconfig     2.0.2   2018-08-16 [1] CRAN (R 3.5.2)
 pkgload       1.0.2   2018-10-29 [1] CRAN (R 3.5.2)
 plyr          1.8.4   2016-06-08 [1] CRAN (R 3.5.2)
 prettyunits   1.0.2   2015-07-13 [1] CRAN (R 3.5.2)
 processx      3.2.1   2018-12-05 [1] CRAN (R 3.5.2)
 ps            1.3.0   2018-12-21 [1] CRAN (R 3.5.2)
 purrr         0.2.5   2018-05-29 [1] CRAN (R 3.5.2)
 R6            2.4.0   2019-02-14 [1] CRAN (R 3.5.2)
 Rcpp          1.0.0   2018-11-07 [1] CRAN (R 3.5.2)
 readr         1.3.1   2018-12-21 [1] CRAN (R 3.5.2)
 readxl      * 1.2.0   2018-12-19 [1] CRAN (R 3.5.2)
 remotes       2.0.2   2018-10-30 [1] CRAN (R 3.5.2)
 rlang         0.3.1   2019-01-08 [1] CRAN (R 3.5.2)
 rmarkdown     1.11    2018-12-08 [1] CRAN (R 3.5.2)
 rprojroot     1.3-2   2018-01-03 [1] CRAN (R 3.5.2)
 rsconnect     0.8.13  2019-01-10 [1] CRAN (R 3.5.2)
 rstudioapi    0.9.0   2019-01-09 [1] CRAN (R 3.5.2)
 rvest         0.3.2   2016-06-17 [1] CRAN (R 3.5.2)
 scales        1.0.0   2018-08-09 [1] CRAN (R 3.5.2)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.5.2)
 stringi       1.3.1   2019-02-13 [1] CRAN (R 3.5.2)
 stringr       1.4.0   2019-02-10 [1] CRAN (R 3.5.2)
 testthat      2.0.1   2018-10-13 [1] CRAN (R 3.5.2)
 tibble        2.0.1   2019-01-12 [1] CRAN (R 3.5.2)
 tidyselect    0.2.5   2018-10-11 [1] CRAN (R 3.5.2)
 usethis       1.4.0   2018-08-14 [1] CRAN (R 3.5.2)
 utf8          1.1.4   2018-05-24 [1] CRAN (R 3.5.2)
 viridisLite   0.3.0   2018-02-01 [1] CRAN (R 3.5.2)
 webshot       0.5.1   2018-09-28 [1] CRAN (R 3.5.2)
 withr         2.1.2   2018-03-15 [1] CRAN (R 3.5.2)
 xfun          0.5     2019-02-20 [1] CRAN (R 3.5.2)
 xml2          1.2.0   2018-01-24 [1] CRAN (R 3.5.2)
 yaml          2.2.0   2018-07-25 [1] CRAN (R 3.5.2)

[1] C:/Users/an499583/Documents/R/win-library/3.5
[2] C:/Program Files/R/R-3.5.2/library

Report rendered by an499583 at 2019-04-16, 08:23 -0400 in 32 seconds.