| to_factor {sjmisc} | R Documentation |
This function converts a variable into a factor, but preserves variable and value label attributes. See 'Examples'.
to_factor(x, ..., add.non.labelled = FALSE, ref.lvl = NULL)
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 |
ref.lvl |
Numeric, specifies the reference level for the new factor. Use
this parameter if a different factor level than the lowest value should be
used as reference level. If |
to_factor converts numeric values into a factor with numeric
levels. as_label, however, converts a vector into
a factor and uses value labels as factor levels.
A factor, including variable and value labels. If x is a
data frame, the complete data frame x will be returned, where
variables specified in ... are coerced to factors (including
variable and value labels); if ... is not specified, applies to
all variables in the data frame.
This function is intended for use with vectors that have value and variable
label attributes. Unlike as.factor, to_factor converts
a variable into a factor and preserves the value and variable label attributes.
Adding label attributes is automatically done by importing data sets
with one of the read_*-functions, like read_spss.
Else, value and variable labels can be manually added to vectors
with set_labels and set_label.
This function is kept for backwards-compatibility. It is preferred to
use as_factor.
as_numeric to convert a factor into a
numeric vector and as_label to convert a vector
into a factor with labelled factor levels.
library(sjlabelled)
data(efc)
# normal factor conversion, loses value attributes
x <- as.factor(efc$e42dep)
frq(x)
# factor conversion, which keeps value attributes
x <- to_factor(efc$e42dep)
frq(x)
# create parially labelled vector
x <- set_labels(efc$e42dep,
labels = c(`1` = "independent", `4` = "severe dependency",
`9` = "missing value"))
# only copy existing value labels
to_factor(x)
get_labels(to_factor(x), include.values = "p")
# also add labels to non-labelled values
to_factor(x, add.non.labelled = TRUE)
get_labels(to_factor(x, add.non.labelled = TRUE), include.values = "p")
# Convert to factor, using different reference level
x <- to_factor(efc$e42dep)
str(x)
table(x)
x <- to_factor(efc$e42dep, ref.lvl = 3)
str(x)
table(x)
# easily coerce specific variables in a data frame to factor
# and keep other variables, with their class preserved
to_factor(efc, e42dep, e16sex, c172code)
# use select-helpers from dplyr-package
library(dplyr)
to_factor(efc, contains("cop"), c161sex:c175empl)