Recodes a numeric vector, character vector, or factor
according to simple recode specifications. Recode
is an alias for recode that avoids name clashes
with packages, such as Hmisc, that have a recode function.
recode(var, recodes, as.factor, as.numeric=TRUE, levels)Recode(...)
numeric vector, character vector, or factor.
character string of recode specifications: see below.
return a factor; default is TRUE if
var is a factor, FALSE otherwise.
if TRUE (the default), and as.factor is FALSE,
then the result will be coerced to numeric
if all values in the result are numerals---i.e., represent numbers.
an optional argument specifying the order of the levels in the returned factor; the default is to use the sort order of the level names.
arguments to be passed to recode.
a recoded vector of the same length as var.
Recode specifications appear in a character string, separated by
semicolons (see the examples below), of the form input=output.
If an input value satisfies more than one specification,
then the first (from left to right) applies.
If no specification is satisfied, then the input value is carried
over to the result. NA is allowed on input and output.
Several recode specifications are supported:
For example, 0=NA.
For example, c(7,8,9)='high'.
For example, 7:9='C'. The special values lo
and hi may appear in a range. For example, lo:10=1. Note: : is
not the R sequence operator. In addition, you may not use : with the c function within a recode specification, so for example c(1, 3, 5:7) will cause an error.
elseeverything that does not fit a previous specification.
For example, else=NA. Note that else matches all otherwise
unspecified values on input, including NA.
Character data and factor levels on the left-hand side of a recode specification must be quoted. Thus,
e.g., c(a, b, c) = 'low' is not allowed, and should be c('a', 'b', 'c') = 'low'.
Similarly, the colon is reserved for numeric data, and, e.g., c('a':'c') = 'low' is not allowed.
If the var argument is a character variable with (some) values that are composed of numerals, or a factor
with (some) levels that are numerals (e.g., '12' or '-2'), then these too must be quoted
and cannot be used with colons (e.g., '15':'19' = '15 to 19' is not allowed, and could be
specified as c('15', '16', '17', '18', '19') = '15 to 19', assuming that all values are
the character representation of whole numbers).
If all of the output values are numeric, and if as.factor is
FALSE, then a numeric result is returned; if var is a factor,
then by default so is the result.
Fox, J. and Weisberg, S. (2019) An R Companion to Applied Regression, Third Edition, Sage.
# NOT RUN {
x<-rep(1:3,3)
x
## [1] 1 2 3 1 2 3 1 2 3
recode(x, "c(1,2)='A';
else='B'")
## [1] "A" "A" "B" "A" "A" "B" "A" "A" "B"
Recode(x, "1:2='A'; 3='B'")
## [1] "A" "A" "B" "A" "A" "B" "A" "A" "B"
# }
Run the code above in your browser using DataLab