A labelled vector is a common data structure in other statistical environments, allowing you to assign text labels to specific values.
labelled(x, labels, label = NULL) is.labelled(x)
| x | A vector to label. Must be either numeric (integer or double) or character. |
|---|---|
| labels | A named vector or |
| label | A short, human-readable description of the vector. |
An object of class "haven_labelled" or "haven_labelled_spss".
labelled (haven)
haven::is.labelled() (haven)
#> <Labelled character> #> [1] M M F #> #> Labels: #> value label #> M Male #> F Femalestr(s1)#> 'haven_labelled' chr [1:3] "M" "M" "F" #> - attr(*, "labels")= Named chr [1:2] "M" "F" #> ..- attr(*, "names")= chr [1:2] "Male" "Female"#> <Labelled double>: Assigned sex at birth #> [1] 1 1 2 #> #> Labels: #> value label #> 1 Male #> 2 Femalestr(s2)#> 'haven_labelled' num [1:3] 1 1 2 #> - attr(*, "label")= chr "Assigned sex at birth" #> - attr(*, "labels")= Named num [1:2] 1 2 #> ..- attr(*, "names")= chr [1:2] "Male" "Female"# Unfortunately it's not possible to make as.factor() work for labelled objects # so instead use to_factor(). This works for all types of labelled vectors. to_factor(s1)#> [1] Male Male Female #> Levels: Male Female#> [1] [M] Male [M] Male [F] Female #> Levels: [M] Male [F] Femaleto_factor(s2)#> [1] Male Male Female #> attr(,"label") #> [1] Assigned sex at birth #> Levels: Male Female# Other statistical software supports multiple types of missing values s3 <- labelled_spss(c(1, 1, 2, 2, 8, 9), c(Male = 1, Female = 2, Refused = 8, "Not applicable" = 9), na_values = c(8, 9) ) s3#> <Labelled SPSS double> #> [1] 1 1 2 2 8 9 #> Missing values: 8, 9 #> #> Labels: #> value label #> 1 Male #> 2 Female #> 8 Refused #> 9 Not applicablestr(s3)#> 'haven_labelled_spss' num [1:6] 1 1 2 2 8 9 #> - attr(*, "labels")= Named num [1:4] 1 2 8 9 #> ..- attr(*, "names")= chr [1:4] "Male" "Female" "Refused" "Not applicable" #> - attr(*, "na_values")= num [1:2] 8 9to_factor(s3)#> [1] Male Male Female Female Refused #> [6] Not applicable #> Levels: Male Female Refused Not applicable#> [1] Male Male Female Female <NA> <NA> #> Levels: Male Female Refused Not applicableis.labelled(s1)#> [1] TRUE