R/printResults.R

Defines functions printResults

Documented in printResults

#' Print Results
#'
#' @param family e.g. Gaussian; argument for glm
#' @param analysis Analysis that produced data for regression analyses: "cfa", "bf", or "lca"
#' @param outcomeVar Outcome variable name
#' @param modelNum  Which model out of the list of models? Pulls predictors from modelPredictorNamesList. Numerical
#' @param data Data for regression analyses
#'
#' @return
#' @export
printResults <- function(family = 'gaussian', analysis = 'cfa', #outcomes,
                         outcomeVar, modelNum, data) {

  #outcomeVar = outcomes[outcomeVar]
  ## Use standardized names for data to load data
  if (analysis == 'lca') {
    data <- lca
    preds <- paste0('Class', 1:8) # predictors ('Class1' factor variable for 1-class lca, etc.)
  } else {
    modelName <- names(modelFactorNamesList)[modelNum]
    preds <- paste0(modelFactorNamesList[[modelNum]], collapse = ' + ') # adding predictors (factors)
  }

  if (analysis == 'bf') {
    #eval(parse(text = paste0('data <- data_bf_', modelName))) # if cfa model names
    preds <- paste0('GENERAL + ', preds) # add general factor to predictor list for bifactor models
  }

  formula <- paste0(#'data$',
    outcomeVar, ' ~ ', preds) # create formula

  if (family == 'gaussian') p <- 'Pr(>|t|)' else p <- 'Pr(>|z|)' # p-value name if continuous or binary outcome
  #results <- eval(parse(text = paste0('coef(summary(lm(formula = formula, data = data)))[, c(\"Estimate\", \"Std. Error\", \"', p, '\")]')))
  results <- eval(parse(text = paste0('zeroinfl(formula = formula, data = data)')))

  ## Warnings
  if (is.factor(data$outcomeVar) | is.character(data$outcomeVar)) {
    if (family == 'gaussian') {
      warning('Family argument is set to Gaussian by default. The specified outcome variable is a factor or string. Re-check these specifications.')
    }
  }

  print(results)
  return(results)

}
enaY15/TabulationAutomation documentation built on March 18, 2020, 8:35 p.m.