Get / Set value labels

val_labels(x, prefixed = FALSE)

# S3 method for default
val_labels(x, prefixed = FALSE)

# S3 method for haven_labelled
val_labels(x, prefixed = FALSE)

# S3 method for data.frame
val_labels(x, prefixed = FALSE)

val_labels(x) <- value

# S3 method for numeric
val_labels(x) <- value

# S3 method for character
val_labels(x) <- value

# S3 method for haven_labelled
val_labels(x) <- value

# S3 method for haven_labelled_spss
val_labels(x) <- value

# S3 method for data.frame
val_labels(x) <- value

val_label(x, v, prefixed = FALSE)

# S3 method for haven_labelled
val_label(x, v, prefixed = FALSE)

# S3 method for data.frame
val_label(x, v, prefixed = FALSE)

val_label(x, v) <- value

# S3 method for haven_labelled
val_label(x, v) <- value

# S3 method for numeric
val_label(x, v) <- value

# S3 method for character
val_label(x, v) <- value

# S3 method for data.frame
val_label(x, v) <- value

set_value_labels(.data, ...)

add_value_labels(.data, ...)

remove_value_labels(.data, ...)

Arguments

x

A vector.

prefixed

Should labels be prefixed with values?

value

A named vector for val_labels (see labelled) or a character string for val_labels. NULL to remove the labels. For data frames, it could also be a named list.

v

A single value.

.data

a data frame

...

name-value pairs of value labels (see examples)

Value

val_labels will return a named vector. val_label will return a single character string.

set_value_labels, add_value_labels and remove_value_labels will return an updated copy of .data.

Note

set_value_labels, add_value_labels and remove_value_labels could be used with dplyr. While set_value_labels will replace the list of value labels, add_value_labels and remove_value_labels will update that list (see examples).

Examples

v <- labelled(c(1,2,2,2,3,9,1,3,2,NA), c(yes = 1, no = 3, "don't know" = 9)) val_labels(v)
#> yes no don't know #> 1 3 9
val_labels(v, prefixed = TRUE)
#> [1] yes [3] no [9] don't know #> 1 3 9
val_label(v, 2)
#> NULL
val_label(v, 2) <- 'maybe' val_label(v, 9) <- NULL val_labels(v) <- NULL if (require(dplyr)) { # setting value labels df <- data_frame(s1 = c("M", "M", "F"), s2 = c(1, 1, 2)) %>% set_value_labels(s1 = c(Male = "M", Female = "F"), s2 = c(Yes = 1, No = 2)) val_labels(df) # updating value labels df <- df %>% add_value_labels(s2 = c(Unknown = 9)) df$s2 # removing a value labels df <- df %>% remove_value_labels(s2 = 9) df$s2 # removing all value labels df <- df %>% set_value_labels(s2 = NULL) df$s2 }
#> [1] 1 1 2