recode {car} | R Documentation |
Recodes a numeric vector, character vector, or factor according to simple recode specifications.
recode(var, recodes, as.factor.result, as.numeric.result=TRUE, levels)
var |
numeric vector, character vector, or factor. |
recodes |
character string of recode specifications: see below. |
as.factor.result |
return a factor; default is TRUE if
var is a factor, FALSE otherwise. |
as.numeric.result |
if TRUE (the default), and as.factor.result is FALSE ,
then the result will be coerced to numeric
if all values in the result are numerals—i.e., represent numbers. |
levels |
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. |
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:
0=NA
.c(7,8,9)='high'
.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.else
else=NA
. Note that else
matches all otherwise
unspecified values on input, including NA
.as.factor.result
is
FALSE
, then a numeric result is returned; if var
is a factor,
then by default so is the result.
a recoded vector of the same length as var
.
John Fox jfox@mcmaster.ca
Fox, J. and Weisberg, S. (2011) An R Companion to Applied Regression, Second Edition, Sage.
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"