Convert a factor or data imported with foreign or memisc to labelled data.
to_labelled(x, ...) # S3 method for data.frame to_labelled(x, ...) # S3 method for list to_labelled(x, ...) # S3 method for data.set to_labelled(x, ...) # S3 method for importer to_labelled(x, ...) foreign_to_labelled(x) memisc_to_labelled(x) # S3 method for factor to_labelled(x, labels = NULL, ...)
| x | Factor or dataset to convert to labelled data frame |
|---|---|
| ... | Not used |
| labels | When converting a factor only:
an optional named vector indicating how factor levels should be coded.
If a factor level is not found in |
A tbl data frame or a labelled vector.
to_labelled is a general wrapper calling the appropriate sub-functions.
memisc_to_labelled converts a data.set object created with
memisc package to a labelled data frame.
foreign_to_labelled converts data imported with read.spss
or read.dta from foreign package to a labelled data frame,
i.e. using labelled class.
Factors will not be converted. Therefore, you should use use.value.labels = FALSE
when importing with read.spss or convert.factors = FALSE when
importing with read.dta.
To convert correctly defined missing values imported with read.spss, you should
have used to.data.frame = FALSE and use.missings = FALSE. If you used the option
to.data.frame = TRUE, meta data describing missing values will not be attached to the import.
If you used use.missings = TRUE, missing values would have been converted to NA.
So far, missing values defined in Stata are always imported as NA by
read.dta and could not be retrieved by foreign_to_labelled.
labelled (foreign), read.spss (foreign),
read.dta (foreign), data.set (memisc),
importer (memisc), to_factor.
# NOT RUN { # from foreign library(foreign) sav <- system.file("files", "electric.sav", package = "foreign") df <- to_labelled(read.spss( sav, to.data.frame = FALSE, use.value.labels = FALSE, use.missings = FALSE )) # from memisc library(memisc) nes1948.por <- UnZip('anes/NES1948.ZIP', 'NES1948.POR', package='memisc') nes1948 <- spss.portable.file(nes1948.por) df <- to_labelled(nes1948) ds <- as.data.set(nes19480) df <- to_labelled(ds) # }# Converting factors to labelled vectors f <- factor(c("yes", "yes", "no", "no", "don't know", "no", "yes", "don't know")) to_labelled(f)#> <Labelled double> #> [1] 3 3 2 2 1 2 3 1 #> #> Labels: #> value label #> 1 don't know #> 2 no #> 3 yes#> <Labelled double> #> [1] 1 1 2 2 9 2 1 9 #> #> Labels: #> value label #> 1 yes #> 2 no #> 9 don't know#> <Labelled double> #> [1] 1 1 2 2 NA 2 1 NA #> #> Labels: #> value label #> 1 yes #> 2 no#> <Labelled character> #> [1] Y Y N N DK N Y DK #> #> Labels: #> value label #> Y yes #> N no #> DK don't knows1 <- labelled(c('M', 'M', 'F'), c(Male = 'M', Female = 'F')) labels <- val_labels(s1) f1 <- to_factor(s1) f1#> [1] Male Male Female #> Levels: Male Femaleto_labelled(f1)#> <Labelled double> #> [1] 1 1 2 #> #> Labels: #> value label #> 1 Male #> 2 Female#> [1] FALSEto_labelled(f1, labels)#> <Labelled character> #> [1] M M F #> #> Labels: #> value label #> M Male #> F Female#> [1] TRUE