By default, to_character()
is a wrapper for base::as.character()
.
For labelled vector, to_character allows to specify if value, labels or
labels prefixed with values should be used for conversion.
to_character(x, ...)
# S3 method for double
to_character(x, explicit_tagged_na = FALSE, ...)
# S3 method for haven_labelled
to_character(
x,
levels = c("labels", "values", "prefixed"),
nolabel_to_na = FALSE,
user_na_to_na = FALSE,
explicit_tagged_na = FALSE,
...
)
# S3 method for data.frame
to_character(
x,
levels = c("labels", "values", "prefixed"),
nolabel_to_na = FALSE,
user_na_to_na = FALSE,
explicit_tagged_na = FALSE,
labelled_only = TRUE,
...
)
Object to coerce to a character vector.
Other arguments passed down to method.
should tagged NA be kept?
What should be used for the factor levels: the labels, the values or labels prefixed with values?
Should values with no label be converted to NA
?
user defined missing values into NA?
for a data.frame, convert only labelled variables to factors?
If some values doesn't have a label, automatic labels will be created,
except if nolabel_to_na
is TRUE
.
When applied to a data.frame, only labelled vectors are converted by
default to character. Use labelled_only = FALSE
to convert all variables
to characters.
v <- labelled(
c(1, 2, 2, 2, 3, 9, 1, 3, 2, NA),
c(yes = 1, no = 3, "don't know" = 9)
)
to_character(v)
#> [1] "yes" "2" "2" "2" "no"
#> [6] "don't know" "yes" "no" "2" NA
to_character(v, nolabel_to_na = TRUE)
#> [1] "yes" NA NA NA "no"
#> [6] "don't know" "yes" "no" NA NA
to_character(v, "v")
#> [1] "1" "2" "2" "2" "3" "9" "1" "3" "2" NA
to_character(v, "p")
#> [1] "[1] yes" "[2] 2" "[2] 2" "[2] 2"
#> [5] "[3] no" "[9] don't know" "[1] yes" "[3] no"
#> [9] "[2] 2" NA
df <- data.frame(
a = labelled(c(1, 1, 2, 3), labels = c(No = 1, Yes = 2)),
b = labelled(c(1, 1, 2, 3), labels = c(No = 1, Yes = 2, DK = 3)),
c = labelled(
c("a", "a", "b", "c"),
labels = c(No = "a", Maybe = "b", Yes = "c")
),
d = 1:4,
e = factor(c("item1", "item2", "item1", "item2")),
f = c("itemA", "itemA", "itemB", "itemB"),
stringsAsFactors = FALSE
)
if (require(dplyr)) {
glimpse(df)
glimpse(to_character(df))
glimpse(to_character(df, labelled_only = FALSE))
}
#> Rows: 4
#> Columns: 6
#> $ a <dbl+lbl> 1, 1, 2, 3
#> $ b <dbl+lbl> 1, 1, 2, 3
#> $ c <chr+lbl> "a", "a", "b", "c"
#> $ d <int> 1, 2, 3, 4
#> $ e <fct> item1, item2, item1, item2
#> $ f <chr> "itemA", "itemA", "itemB", "itemB"
#> Rows: 4
#> Columns: 6
#> $ a <chr> "No", "No", "Yes", "3"
#> $ b <chr> "No", "No", "Yes", "DK"
#> $ c <chr> "No", "No", "Maybe", "Yes"
#> $ d <int> 1, 2, 3, 4
#> $ e <fct> item1, item2, item1, item2
#> $ f <chr> "itemA", "itemA", "itemB", "itemB"
#> Rows: 4
#> Columns: 6
#> $ a <chr> "No", "No", "Yes", "3"
#> $ b <chr> "No", "No", "Yes", "DK"
#> $ c <chr> "No", "No", "Maybe", "Yes"
#> $ d <chr> "1", "2", "3", "4"
#> $ e <chr> "item1", "item2", "item1", "item2"
#> $ f <chr> "itemA", "itemA", "itemB", "itemB"