Skip to contents

Converts a (labelled) vector of any class into a labelled class vector, resp. adds a labelled class-attribute.

Usage

as_labelled(
  x,
  add.labels = FALSE,
  add.class = FALSE,
  skip.strings = FALSE,
  tag.na = FALSE
)

Arguments

x

Variable (vector), data.frame or list of variables that should be converted to labelled()-class objects.

add.labels

Logical, if TRUE, non-labelled values will be labelled with the corresponding value.

add.class

Logical, if TRUE, x preserves its former class-attribute and labelled is added as additional attribute. If FALSE (default), all former class-attributes will be removed and the class-attribute of x will only be labelled.

skip.strings

Logical, if TRUE, character vector are not converted into labelled-vectors. Else, character vectors are converted to factors vector and the associated values are used as value labels.

tag.na

Logical, if TRUE, tagged NA values are replaced by their associated values. This is required, for instance, when writing data back to SPSS.

Value

x, as labelled-class object.

Examples

data(efc)
str(efc$e42dep)
#>  num [1:908] 3 3 3 4 4 4 4 4 4 4 ...
#>  - attr(*, "label")= chr "elder's dependency"
#>  - attr(*, "labels")= Named num [1:4] 1 2 3 4
#>   ..- attr(*, "names")= chr [1:4] "independent" "slightly dependent" "moderately dependent" "severely dependent"

x <- as_labelled(efc$e42dep)
#> Error in get_na_helper(x, as.tag): Package 'haven' required for this function. Please install it.
str(x)
#> Error: object 'x' not found

x <- as_labelled(efc$e42dep, add.class = TRUE)
#> Error in get_na_helper(x, as.tag): Package 'haven' required for this function. Please install it.
str(x)
#> Error: object 'x' not found

a <- c(1, 2, 4)
x <- as_labelled(a, add.class = TRUE)
str(x)
#>  num [1:3] 1 2 4

data(efc)
x <- set_labels(efc$e42dep,
                labels = c(`1` = "independent", `4` = "severe dependency"))
#> Error in get_na_helper(x, as.tag): Package 'haven' required for this function. Please install it.
x1 <- as_labelled(x, add.labels = FALSE)
x2 <- as_labelled(x, add.labels = TRUE)

str(x1)
#>  num [1:3] 1 2 4
str(x2)
#>  num [1:3] 1 2 4

get_values(x1)
#> NULL
get_values(x2)
#> NULL