discursive {discursive} | R Documentation |
Compute discursive sophistication for a set of open-ended responses
Description
This function takes a data frame (data
) containing a set of open-ended responses (openends
) to compute the three components of discursive sophistication (size, range, and constraint) and combines them in a single scale. See Kraft (2023) for details.
Usage
discursive(
data,
openends,
meta,
args_textProcessor = NULL,
args_prepDocuments = NULL,
args_stm = NULL,
keep_stm = TRUE,
dictionary,
remove_duplicates = FALSE,
type = c("scale", "average", "average_scale", "product"),
progress = TRUE
)
Arguments
data |
A data frame. |
openends |
A character vector containing variable names of open-ended responses in |
meta |
A character vector containing topic prevalence covariates included in |
args_textProcessor |
A named list containing additional arguments passed to |
args_prepDocuments |
A named list containing additional arguments passed to |
args_stm |
A named list containing additional arguments passed to |
keep_stm |
Logical. If TRUE function returns output of |
dictionary |
A character vector containing dictionary terms to flag conjunctions and exclusive words. May include regular expressions. |
remove_duplicates |
Logical. If TRUE duplicates in |
type |
The method of combining the three components, must be "scale", "average", "average_scale", or "product". The default is "scale", which creates an additive index that is re-scaled to mean 0 and standard deviation 1. Alternatively, "average" creates the same additive index without re-scaling; "average_scale" re-scales each individual component to mean 0 and standard deviation 1 before creating the additive index; "product" creates a multiplicative index. |
progress |
Logical. Shows progress bar if TRUE. |
Value
A list containing the measure of discursive sophistication and the underlying components in a data frame, as well as the output of stm::textProcessor()
, stm::prepDocuments()
, and stm::stm()
.
Examples
discursive(data = cces,
openends = c(paste0("oe0", 1:9), "oe10"),
meta = c("age", "educ_cont", "pid_cont", "educ_pid", "female"),
args_prepDocuments = list(lower.thresh = 10),
args_stm = list(K = 25, seed = 12345),
dictionary = dict_sample)