as_enum() turns an existing object into an enumeration. Coercion can be used when you want to create an enum, but don't know what the exact values each member will contain at runtime. This is comparable to the as.list method.

As an S3 generic, as_enum() holds methods for:

as_enum(x, ...)

# S3 method for list
as_enum(x, ...)

# S3 method for environment
as_enum(x, ..., .all_names = FALSE, .sorted = TRUE)

# S3 method for factor
as_enum(x, ..., .sorted = TRUE)

# S3 method for data.frame
as_enum(x, ..., use_cols = FALSE, use_rows = FALSE)

# S3 method for `NULL`
as_enum(x, ...)

# S3 method for default
as_enum(x, ...)

Arguments

x

the object to coerce to enum

...

parameters to pass to further methods

.all_names

whether to include variables with a dot .

.sorted

whether the object elements should be sorted

use_cols

cols of the data frame are used for name/value pairs instead of the data frame's observations

use_rows

rows of the data frame are used for name/value pairs instead of the data frame's observations

Value

An enumeration (enum), a list of unique name/value pairs

See also

enum() create an enum from supplied arguments. new_generic_enum() and new_numeric_enum() create enums from a list of arguments.

Examples

as_enum(list(x = 5, y = "str"))
#> # A generic enum: 2 members #> num x : 5 #> chr y : str
as_enum(rlang::env(a = 1, b = "str"))
#> # A generic enum: 2 members #> num a : 1 #> chr b : str
as_enum(factor(c("January", "February", "December"), levels = month.name))
#> # A numeric enum: 3 members #> num January : 1 #> num February : 2 #> num December : 12
as_enum(mtcars)
#> # A generic enum: 11 members #> num mpg : 32 obs #> num cyl : 32 obs #> num disp : 32 obs #> num hp : 32 obs #> num drat : 32 obs #> num wt : 32 obs #> num qsec : 32 obs #> num vs : 32 obs #> num am : 32 obs #> num gear : 32 obs #> num carb : 32 obs
as_enum(mtcars, use_cols = TRUE)
#> # A generic enum: 11 members #> chr mpg : mpg #> chr cyl : cyl #> chr disp : disp #> chr hp : hp #> chr drat : drat #> chr wt : wt #> chr qsec : qsec #> chr vs : vs #> chr am : am #> chr gear : gear #> chr carb : carb
as_enum(mtcars, use_rows = TRUE)
#> # A generic enum: 32 members #> chr Mazda RX4 : Mazda RX4 #> chr Mazda RX4 Wag : Mazda RX4 Wag #> chr Datsun 710 : Datsun 710 #> chr Hornet 4 Drive : Hornet 4 Drive #> chr Hornet Sportabout : Hornet Sportabout #> chr Valiant : Valiant #> chr Duster 360 : Duster 360 #> chr Merc 240D : Merc 240D #> chr Merc 230 : Merc 230 #> chr Merc 280 : Merc 280 #> chr Merc 280C : Merc 280C #> chr Merc 450SE : Merc 450SE #> chr Merc 450SL : Merc 450SL #> chr Merc 450SLC : Merc 450SLC #> chr Cadillac Fleetwood : Cadillac Fleetwood #> chr Lincoln Continental : Lincoln Continental #> chr Chrysler Imperial : Chrysler Imperial #> chr Fiat 128 : Fiat 128 #> chr Honda Civic : Honda Civic #> chr Toyota Corolla : Toyota Corolla #> chr Toyota Corona : Toyota Corona #> chr Dodge Challenger : Dodge Challenger #> chr AMC Javelin : AMC Javelin #> chr Camaro Z28 : Camaro Z28 #> chr Pontiac Firebird : Pontiac Firebird #> chr Fiat X1-9 : Fiat X1-9 #> chr Porsche 914-2 : Porsche 914-2 #> chr Lotus Europa : Lotus Europa #> chr Ford Pantera L : Ford Pantera L #> chr Ferrari Dino : Ferrari Dino #> chr Maserati Bora : Maserati Bora #> chr Volvo 142E : Volvo 142E