These functions are used in conjunction with the determinantStructure family of funtions to conveniently work with determinant structures.

detStructAddVarLabels(
  determinantStructure,
  varLabelDf,
  varNameCol = "varNames.cln",
  leftAnchorCol = "leftAnchors",
  rightAnchorCol = "rightAnchors",
  subQuestionCol = "subQuestions",
  questionTextCol = "questionText"
)

detStructAddVarNames(determinantStructure, names)

detStructComputeProducts(determinantStructure, data, append = TRUE)

detStructComputeScales(
  determinantStructure,
  data,
  append = TRUE,
  separator = "_"
)

Arguments

determinantStructure

The determinantStructure object.

varLabelDf

The variable label dataframe as generated by the processLSvarLabels in the userfriendlyscience package. It is also possible to specify a 'homemade' dataframe, in which case the column names have to specified (see the next arguments).

varNameCol

The name of the column of the varLabelDf that contains the variable name. Only needs to be changed from the default value if varLabelDf is not a dataframe as produced by processLSvarLabels.

leftAnchorCol

The name of the column of the varLabelDf that contains the left anchor. Only needs to be changed from the default value if varLabelDf is not a dataframe as produced by processLSvarLabels.

rightAnchorCol

The name of the column of the varLabelDf that contains the right anchor. Only needs to be changed from the default value if varLabelDf is not a dataframe as produced by processLSvarLabels.

subQuestionCol

The name of the column of the varLabelDf that contains the subquestion. Only needs to be changed from the default value if varLabelDf is not a dataframe as produced by processLSvarLabels.

questionTextCol

The name of the column of the varLabelDf that contains the question text. Only needs to be changed from the default value if varLabelDf is not a dataframe as produced by processLSvarLabels.

names

A character vector with the variable names. These are matched against the regular expressions as specified in the determinantStructure object, and any matches will be stored in the determinantStructure object.

data

The dataframe containing the data; the variables names specified in names (when calling detStructAddVarNames) must be present in this dataframe.

append

Whether to only return the products or scales, or whether to append these to the dataframe and return the entire dataframe.

separator

The separator to use when constructing the scale variables names.

Value

detStructAddVarLabels and detStructAddVarNames just change the determinantStructure object; detStructComputeProducts and detStructComputeScales return either the dataframe with the new variables appended (if append = TRUE) or just a dataframe with the new variables (if append = FALSE).

Details

This family of functions will be explained more in detail in a forthcoming paper.

References

(Forthcoming)

Examples

### Create some bogus determinant data
detStudy <- mtcars[, c(1, 3:7)];
names(detStudy) <- c('rUse_behav',
                     'rUse_intention',
                     'rUse_attitude1',
                     'rUse_attitude2',
                     'rUse_expAtt1',
                     'rUse_expAtt2');

### Specify the determinant structure

### First a subdeterminant
expAtt <-
  behaviorchange::subdeterminants("Subdeterminants",
                                  "expAtt");

### Then two determinants
attitude <-
  behaviorchange::determinantVar("Determinant",
                                 "attitude",
                                 expAtt);

intention <-
  behaviorchange::determinantVar("ProximalDeterminant",
                                 "intention",
                                 attitude);

### Then the entire determinant strcture
detStruct <-
  behaviorchange::determinantStructure('Behavior',
                                       list('behav',
                                       behaviorRegEx = 'rUse'),
                                       intention);

### Add the variable names
behaviorchange::detStructAddVarNames(detStruct,
                                     names(detStudy));

### Add the determinant scale variable to the dataframe
detStudyPlus <-
  behaviorchange::detStructComputeScales(detStruct,
                                         data=detStudy);
#> Error in names(scalables) <- paste0(behaviorRegEx, separator, names(scalables)): 'names' attribute [1] must be the same length as the vector [0]

### Show its presence
names(detStudyPlus);
#> Error in eval(expr, envir, enclos): object 'detStudyPlus' not found
mean(detStudyPlus$rUse_Determinant);
#> Error in mean(detStudyPlus$rUse_Determinant): object 'detStudyPlus' not found