---
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)
```