data-raw/combinePrototypes.r

# Each prototype is a list with 4 data frames. Create 4 data frames, each of which has data for all prototypes.
protonames <- c("average", "underfunded", "underfundedTeachers", "oldplan", "highabratio", "youngplan")

getproto <- function(proto) readRDS(paste0(draw, paste0(proto, ".rds")))
biglist <- llply(protonames, getproto)

actives <- ldply(1:length(biglist), function(lnum) return(biglist[[lnum]]$actives))
retirees <- ldply(1:length(biglist), function(lnum) return(biglist[[lnum]]$retirees))
salgrowth.hist <- ldply(1:length(biglist), function(lnum) return(biglist[[lnum]]$salgrowth.hist))
salgrowth.assume <- ldply(1:length(biglist), function(lnum) return(biglist[[lnum]]$salgrowth.assume))

count(actives, planname)
count(retirees, planname)
count(salgrowth.hist, planname)
count(salgrowth.assume, planname)

#****************************************************************************************************
#                    Now save the combined data frames ####
#****************************************************************************************************
use_data(actives, overwrite = TRUE)
use_data(retirees, overwrite = TRUE)
use_data(salgrowth.hist, overwrite = TRUE)
use_data(salgrowth.assume, overwrite = TRUE)


# library(pp.prototypes)
# actives
# salgrowth.hist
# load("./data/salgrowth.assume.rda")


#****************************************************************************************************
#                    Compare prototypes ####
#****************************************************************************************************

load("./data/actives.rda")
load("./data/retirees.rda")

# actives
ht(actives)
tmp <- actives %>% group_by(planname, age) %>%
  summarise(nactives.sum=sum(nactives),
            salary.avg=sum(salary*nactives) / nactives.sum,
            yos.avg=sum(nactives * (age - ea)) / nactives.sum)
qplot(age, nactives.sum, data=tmp, colour=planname, geom=c("point", "line"))
qplot(age, salary.avg, data=tmp, colour=planname, geom=c("point", "line"))
qplot(age, yos.avg, data=tmp, colour=planname, geom=c("point", "line"))
# plan level summaries
actives %>% group_by(planname) %>%
  summarise(nactives.sum=sum(nactives),
            salary.avg=sum(salary*nactives) / nactives.sum,
            yos.avg=sum(nactives * (age - ea)) / nactives.sum,
            age.avg=sum(age*nactives) / nactives.sum)


# retirees
ht(retirees)
qplot(age, nretirees, data=retirees, colour=planname, geom=c("point", "line"))
qplot(age, benefit, data=retirees, colour=planname, geom=c("point", "line"))
# get plan level summaries
retirees %>% group_by(planname) %>%
  summarise(nretirees.sum=sum(nretirees),
            benefit.avg=sum(benefit*nretirees) / nretirees.sum,
            age.avg=sum(age*nretirees) / nretirees.sum)


# summary stats
adf <- actives %>% group_by(planname) %>%
  summarise(totactives=sum(nactives),
            avgage.a=sum(age*nactives) / totactives,
            avgyos=sum((age-ea)*nactives) / totactives,
            avgsalary=sum(salary*nactives)/totactives)
rdf <- retirees %>% group_by(planname) %>%
  summarise(totretirees=sum(nretirees),
            avgage.r=sum(age*nretirees) / totretirees,
            avgbenefit=sum(benefit*nretirees) / totretirees)
left_join(adf, rdf) %>% mutate(abratio=totactives / totretirees)

actives %>% group_by(age, planname) %>%
  summarise(nactives=sum(nactives)) %>%
  qplot(age, nactives, data=., colour=planname, geom=c("point", "line"))

retirees %>% group_by(planname) %>%
  mutate(pctretirees=nretirees / sum(nretirees) * 100) %>%
  qplot(age, pctretirees, data=., colour=planname, geom=c("point", "line"))
donboyd5/pp.prototypes documentation built on May 15, 2019, 10:39 a.m.