parse_factor
is similar to factor()
, but will generate
warnings if elements of x
are not found in levels
.
Usage
parse_factor(
x,
levels = NULL,
ordered = FALSE,
na = c("", "NA"),
locale = default_locale(),
include_na = TRUE,
trim_ws = TRUE
)
col_factor(levels = NULL, ordered = FALSE, include_na = FALSE)
Arguments
- x
Character vector of values to parse.
- levels
Character vector providing set of allowed levels. if
NULL
, will generate levels based on the unique values ofx
, ordered by order of appearance inx
.- ordered
Is it an ordered factor?
- na
Character vector of strings to interpret as missing values. Set this option to
character()
to indicate no missing values.- locale
The locale controls defaults that vary from place to place. The default locale is US-centric (like R), but you can use
locale()
to create your own locale that controls things like the default time zone, encoding, decimal mark, big mark, and day/month names.- include_na
If
NA
are present, include as an explicit factor to level?- trim_ws
Should leading and trailing whitespace (ASCII spaces and tabs) be trimmed from each field before parsing it?
See also
Other parsers:
col_skip()
,
cols_condense()
,
cols()
,
parse_datetime()
,
parse_guess()
,
parse_logical()
,
parse_number()
,
parse_vector()
Examples
parse_factor(c("a", "b"), letters)
#> [1] a b
#> Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
x <- c("cat", "dog", "caw")
levels <- c("cat", "dog", "cow")
# Base R factor() silently converts unknown levels to NA
x1 <- factor(x, levels)
# parse_factor generates a warning & problems
x2 <- parse_factor(x, levels)
#> Warning: 1 parsing failure.
#> row col expected actual
#> 3 -- value in level set caw
# Using an argument of `NULL` will generate levels based on values of `x`
x2 <- parse_factor(x, levels = NULL)