reformat {dunlin} | R Documentation |
Reformat Values
Description
Reformat Values
Usage
reformat(obj, ...)
## Default S3 method:
reformat(obj, format, ...)
## S3 method for class 'character'
reformat(obj, format, ...)
## S3 method for class 'factor'
reformat(obj, format, ...)
## S3 method for class 'list'
reformat(obj, format, ...)
Arguments
obj |
( |
... |
for compatibility between methods and pass additional special mapping to transform rules.
|
format |
( |
Value
(character
, factor
or list of data.frame
) with remapped values.
Note
When the rule is empty rule or when values subject to reformatting are absent from the object, no error is
raised. The conversion to factor if .string_as_fct = TRUE
) is still carried out. The conversion of the levels
declared in .to_NA
to NA
values occurs after the remapping. NA
values created this way are not affected by a
rule declaring a remapping of NA
values. For factors, level dropping is the last step, hence, levels converted to
NA
by the .to_NA
argument, will be removed if .drop
is TRUE
. Arguments passed via reformat
override the
ones defined during rule creation.
the variables listed under the all_dataset
keyword will be reformatted with the corresponding rule in every
data set except where another rule is specified for the same variable under a specific data set name.
Examples
# Reformatting of character.
obj <- c("a", "b", "x", NA, "")
attr(obj, "label") <- "my label"
format <- rule("A" = "a", "NN" = NA)
reformat(obj, format)
reformat(obj, format, .string_as_fct = FALSE, .to_NA = NULL)
# Reformatting of factor.
obj <- factor(c("first", "a", "aa", "b", "x", NA), levels = c("first", "x", "b", "aa", "a", "z"))
attr(obj, "label") <- "my label"
format <- rule("A" = c("a", "aa"), "NN" = c(NA, "x"), "Not_present" = "z", "Not_a_level" = "P")
reformat(obj, format)
reformat(obj, format, .na_last = FALSE, .to_NA = "b", .drop = FALSE)
# Reformatting of list of data.frame.
df1 <- data.frame(
var1 = c("a", "b", NA),
var2 = factor(c("F1", "F2", NA))
)
df2 <- data.frame(
var1 = c("x", NA, "y"),
var2 = factor(c("F11", NA, "F22"))
)
db <- list(df1 = df1, df2 = df2)
format <- list(
df1 = list(
var1 = rule("X" = "x", "N" = NA, .to_NA = "b")
),
df2 = list(
var2 = rule("f11" = "F11", "NN" = NA)
),
all_datasets = list(
var1 = rule("xx" = "x", "aa" = "a")
)
)
reformat(db, format)