R/addModelContent.R

Defines functions addModelContent

Documented in addModelContent

#' Add Model Content
#'
#' @param setName Choose the global environment name for setContent;
#'               also the name attribute for setContent as a new element of the list
#'                        (e.g., the name of a subset of outcomes or predictors)
#' @param setContent Vectors of additional content (e.g. a vector of predictor or outcome variables)
#' @param setNameAttribute Vector for names attribute; goes with the elements of setContent
#'                            (e.g. individual full names of predictors;
#'                            can make non-syntactic and thus "pretty" for output)
#' @param list The name of list to which setContent will be appended;
#'                    function will initialize it if not already in global environment
#'
#' @return
#' @export
#'
#' @examples addModelContent(setName = 'drinking_outcomes',
#' list = 'outcomesList',
#' setContent = c('MAXDRINKS', 'DRINKFREQ', 'USUALAMT', 'BINGE', 'INTOX'),
#' setNameAttribute = c('Maximum Drinks', 'Drinking Frequency', 'Usual Amount', 'Binge Frequency', 'Intoxication Frequency'))
#'
#' addModelContent(setName = 'sf12_outcomes',
#' list = 'outcomesList',
#' setContent = c('gh', 'calm', 'depressed', 'accomplishedless', 'carefulless'),
#' setNameAttribute = c('General Health', 'Calm/Peaceful', 'Down/Depressed', 'Less Accomplished', 'Less Careful'))
#'
#' addModelContent(setName = 'Dysphoria',
#' list = 'modelContentsList',
#' setContent = c('INTRUSIONS', 'AVOIDANCE', 'DYSPHORIA', 'HYPERAROUSAL'),
#' setNameAttribute = c('Intrusions', 'Avoidance', 'Dysphoria', 'Hyperarousal'))
#'
#' addModelContent(setName = 'Dysphoric_Arousal',
#' list = 'modelContentsList',
#' setContent = c('INTRUSIONS', 'AVOIDANCE', 'DYSPHORIA', 'DYSPHORIC_AROUSAL', 'ANXIOUS_AROUSAL'),
#' setNameAttribute = c('Intrusions', 'Avoidance', 'Dysphoria', 'Dysphoric Arousal', 'Anxious Arousal'))

addModelContent <- function(setName, setContent, setNameAttribute, list) {

  if (list %in% ls(envir = .GlobalEnv) == FALSE) { # if list doesn't already exist in user's global environment...
    # ...then initialize empty list with the specified name in global environment
    eval(envir = globalenv(), parse(text = paste0(list, ' <- vector(mode = "list")')))
  }

  names(setContent) <- setNameAttribute # name elements of new vector
  newVector <<- setContent
  eval(envir = globalenv(), parse(text = paste0(setName, ' <- newVector'))) # vector with names -> global environment
  eval(envir = globalenv(), parse(text = paste0(list, '[[\'', setName, '\']] <- ', setName))) # + vector to list in global environment

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