R/combine_params.R

Defines functions combine.params

Documented in combine.params

#' Re-merge Quantile Regression Coefficients
#'
#' Concatenate the individual parameter files calculated through separate calls
#' to \code{\link{estimate.quantiles}} into a single file, removing duplicates along the
#' way. This is only really necessary for \code{\link{get.quantile.changes}}.
#'
#' @param defaults the output from \code{\link{various_defaults}}
#'
#' @return a merged file containing all calculated regression coefficients in a
#'   large list, \code{params}, and saved in \code{[defaults$mod.data.dir]/params/}
#'   as \code{[filevar]_day_[mod.name]_quantfit_params_[mod.year.range[1]-mod.year.range[2]]_alllocs.RData}.
#'
#' @importFrom rlist list.select

combine.params <- function(defaults) {
  # Set output filename
  output.fn <- paste0(defaults$mod.data.dir,"params/",
                      defaults$filevar,"_day_",defaults$mod.name,
                      "_quantfit_params_",
                      paste0(defaults$mod.year.range,collapse="-"),
                      "_alllocs")

  # Find coefficient files
  fn.search.pattern <- paste0(defaults$filevar,
                      "_day_",defaults$mod.name,"_quantfit_params_",
                      paste0(defaults$mod.year.range,collapse="-"),"_locs.*")
  if (defaults$bootstrapping) {
    fn.search.pattern <- paste0(fn.search.pattern,"_",defaults$block.size,"block",defaults$nboots,"runs")
  }
  fn.search.pattern <- paste0(fn.search.pattern,".RData")

  file.list <- dir(path=paste0(defaults$mod.data.dir,"params/"),
                   pattern=fn.search.pattern)

  # Load and concatenate files
  params.all <- list()
  for (filen in file.list) {
    # Load output
    load(paste0(defaults$mod.data.dir,"params/",filen))

    # Attach
    params.all <- c(params.all,params)
    rm(params)
  }

  # Remove duplicated latlon combinations
  dup.idxs <- duplicated(cbind(unlist(list.select(params.all,lat)),unlist(list.select(params.all,lon))))
  params.all <- params.all[!dup.idxs]
  # Rename back to output.map
  params <- params.all; rm(list=c("params.all"))

  # Save as .RData file
  save(file=paste0(output.fn,".RData"),params)
}
ks905383/quantproj documentation built on Nov. 1, 2020, 9:12 p.m.