| as_character | R Documentation | 
as_label() converts (replaces) values of a variable (also of factors
or character vectors) with their associated value labels. Might
be helpful for factor variables.
For instance, if you have a Gender variable with 0/1 value, and associated
labels are male/female, this function would convert all 0 to male and
all 1 to female and returns the new variable as factor.
as_character() does the same as as_label(), but returns
a character vector.
as_character(x, ...)
to_character(x, ...)
## S3 method for class 'data.frame'
as_character(
  x,
  ...,
  add.non.labelled = FALSE,
  prefix = FALSE,
  var.label = NULL,
  drop.na = TRUE,
  drop.levels = FALSE,
  keep.labels = FALSE
)
as_label(x, ...)
to_label(x, ...)
## S3 method for class 'data.frame'
as_label(
  x,
  ...,
  add.non.labelled = FALSE,
  prefix = FALSE,
  var.label = NULL,
  drop.na = TRUE,
  drop.levels = FALSE,
  keep.labels = FALSE
)
x | 
 A vector or data frame.  | 
... | 
 Optional, unquoted names of variables that should be selected for
further processing. Required, if   | 
add.non.labelled | 
 Logical, if   | 
prefix | 
 Logical, if   | 
var.label | 
 Optional string, to set variable label attribute for the
returned variable (see vignette Labelled Data and the sjlabelled-Package).
If   | 
drop.na | 
 Logical, if   | 
drop.levels | 
 Logical, if   | 
keep.labels | 
 Logical, if   | 
See 'Details' in get_na.
A factor with the associated value labels as factor levels. If x
is a data frame, the complete data frame x will be returned,
where variables specified in ... are coerced to factors;
if ... is not specified, applies to all variables in the
data frame. as_character() returns a character vector.
Value label attributes (see get_labels)
will be removed when converting variables to factors.
data(efc)
print(get_labels(efc)['c161sex'])
head(efc$c161sex)
head(as_label(efc$c161sex))
print(get_labels(efc)['e42dep'])
table(efc$e42dep)
table(as_label(efc$e42dep))
head(efc$e42dep)
head(as_label(efc$e42dep))
# structure of numeric values won't be changed
# by this function, it only applies to labelled vectors
# (typically categorical or factor variables)
str(efc$e17age)
str(as_label(efc$e17age))
# factor with non-numeric levels
as_label(factor(c("a", "b", "c")))
# factor with non-numeric levels, prefixed
x <- factor(c("a", "b", "c"))
x <- set_labels(x, labels = c("ape", "bear", "cat"))
as_label(x, prefix = TRUE)
# create vector
x <- c(1, 2, 3, 2, 4, NA)
# add less labels than values
x <- set_labels(
  x,
  labels = c("yes", "maybe", "no"),
  force.labels = FALSE,
  force.values = FALSE
)
# convert to label w/o non-labelled values
as_label(x)
# convert to label, including non-labelled values
as_label(x, add.non.labelled = TRUE)
# create labelled integer, with missing flag
if (require("haven")) {
  x <- labelled(
    c(1:3, tagged_na("a", "c", "z"), 4:1, 2:3),
    c("Agreement" = 1, "Disagreement" = 4, "First" = tagged_na("c"),
      "Refused" = tagged_na("a"), "Not home" = tagged_na("z"))
  )
  # to labelled factor, with missing labels
  as_label(x, drop.na = FALSE)
  # to labelled factor, missings removed
  as_label(x, drop.na = TRUE)
  # keep missings, and use non-labelled values as well
  as_label(x, add.non.labelled = TRUE, drop.na = FALSE)
}
# convert labelled character to factor
dummy <- c("M", "F", "F", "X")
dummy <- set_labels(
  dummy,
  labels = c(`M` = "Male", `F` = "Female", `X` = "Refused")
)
get_labels(dummy,, "p")
as_label(dummy)
# drop unused factor levels, but preserve variable label
x <- factor(c("a", "b", "c"), levels = c("a", "b", "c", "d"))
x <- set_labels(x, labels = c("ape", "bear", "cat"))
set_label(x) <- "A factor!"
x
as_label(x, drop.levels = TRUE)
# change variable label
as_label(x, var.label = "New variable label!", drop.levels = TRUE)
# convert to numeric and back again, preserving label attributes
# *and* values in numeric vector
x <- c(0, 1, 0, 4)
x <- set_labels(x, labels = c(`null` = 0, `one` = 1, `four` = 4))
# to factor
as_label(x)
# to factor, back to numeric - values are 1, 2 and 3,
# instead of original 0, 1 and 4
as_numeric(as_label(x))
# preserve label-attributes when converting to factor, use these attributes
# to restore original numeric values when converting back to numeric
as_numeric(as_label(x, keep.labels = TRUE), use.labels = TRUE)
# easily coerce specific variables in a data frame to factor
# and keep other variables, with their class preserved
as_label(efc, e42dep, e16sex, c172code)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.