--- title: "Class Coercion" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Class Coercion} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup, message=FALSE, echo=FALSE} library(ilabelled) ``` # Class coercion Objects of type i_labelled can be very easily converted into base R object classes. On the one hand, this is possible using the familiar as.* methods. On the other hand, there are specific functions in which value labels are taken into account: i_as_factor() and i_as_character If R's own method as.* is used, the underlying data is converted accordingly. Value labels are not taken into account. ```{r} myData <- i_labelled( x = c(1, 2, 3, NA), labels = c("A" = 1, "B" = 2), label = "my Variable" ) as.character(myData) as.numeric(myData) as.factor(myData) ``` However, ilabelled also offers two specific functions that take value labels into account during conversion. ```{r} myData <- i_labelled( x = c(1, 2, 3, NA, -9), labels = c("A" = 1, "B" = 2, "X" = -9), label = "my Variable", na_values = -9 ) i_as_factor(myData, missing_to_na = FALSE, keep_attributes = FALSE) i_as_character(myData, missing_to_na = TRUE, keep_attributes = TRUE) ```