R/chr_to_var.R
chr_to_var.Rd
This function takes a string variable and converts it into a labelled double
variable, using value label mappings (lab_str
, lab_num
) and variable
labels (var_label
) provided by the user.
chr_to_var(var, lab_str, lab_num, var_label, na = "<N/A>", wrap = 100)
string vector containing the variable
string vector containing the labels for the variable. The
lengths and values must be an exact match of the variable in var
.
numeric vector matching the labels provided in lab_str
. The
length of lab_num
must be the same as lab_str
, and the order is used to
determine the mapping.
string to be used as the variable label, passed through to
set_varl()
.
string to replace missing values with as a value label. Defaults to
"<N/A>"
. Set to NULL
to not replace missing values.
numeric value to apply a text wrap to value labels for plotting
aesthetics. The numeric value determines the number of minimum characters
before the next space before adding a new line (\n
). Defaults to 100.
a labelled double variable
This function is a wrapper around several other surveytoolbox functions:
var1 <- c("Yes", "No", "Not sure")
lab1 <- c(1, 0, 99)
q1_var <- sample(var1, 100, replace = TRUE)
# Convert to labelled double
chr_to_var(
var = q1_var,
lab_str = var1,
lab_num = lab1,
var_label = c("Have you come across this product previously?")
)
#> <labelled<double>[100]>: Have you come across this product previously?
#> [1] 0 99 99 0 0 99 0 0 99 99 1 99 0 0 1 0 0 1 0 0 0 1 1 1 1
#> [26] 1 1 0 99 99 1 1 1 0 1 0 99 1 1 0 99 0 99 0 0 0 99 0 1 0
#> [51] 99 0 1 99 0 99 99 0 0 99 99 1 1 1 1 99 0 0 99 0 1 1 1 0 1
#> [76] 99 0 1 1 99 99 99 1 99 0 0 0 99 1 1 1 1 1 1 0 99 0 0 0 99
#>
#> Labels:
#> value label
#> 1 Yes
#> 0 No
#> 99 Not sure
## Example with missing values
# Generate variable with missing values
var1 <- c("Yes", "No", NA)
q1_var <- sample(var1, 100, replace = TRUE)
# Variable and value labels
var1b <- c("Yes", "No", "<N/A>")
lab1 <- c(1, 0, 99)
# Convert to labelled double
chr_to_var(
var = q1_var,
lab_str = var1b,
lab_num = lab1,
var_label = c("Have you come across this product previously?")
)
#> <labelled<double>[100]>: Have you come across this product previously?
#> [1] 99 99 1 1 1 99 1 0 1 1 0 0 0 99 1 1 0 1 0 1 0 1 0 0 1
#> [26] 99 99 99 1 1 99 1 0 0 0 1 1 0 0 1 1 99 1 1 1 0 99 0 1 1
#> [51] 1 0 99 1 0 99 0 1 99 0 0 0 99 0 0 99 1 0 1 0 99 1 1 0 1
#> [76] 1 0 99 1 99 0 0 99 99 1 99 99 0 99 0 1 99 1 99 0 0 99 1 0 1
#>
#> Labels:
#> value label
#> 1 Yes
#> 0 No
#> 99 <N/A>