R: Recode a Variable

recode {car} | R Documentation

## Recode a Variable

### Description

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.

### Usage

    recode(var, recodes, as.factor.result, as.numeric.result=TRUE, levels)

    Recode(...)

### Arguments

`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.
`...` | arguments to be passed to `recode`.

### Details

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:

single value

  For example, `0=NA`.

vector of values

  For example, `c(7,8,9)='high'`.

range of values

  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 collect operator, so for example `c(1, 3, 5:7)` will cause an error.

`else`

  everything that does not fit a previous specification. For example, `else=NA`. Note that `else` matches all otherwise unspecified values on input, including `NA`.

If all of the output values are numeric, and if `as.factor.result` is `FALSE`, then a numeric result is returned; if `var` is a factor, then by default so is the result.

### Value

a recoded vector of the same length as `var`.

### Author(s)

John Fox jfox@mcmaster.ca

### References

Fox, J. and Weisberg, S. (2011) An R Companion to Applied Regression, Second Edition, Sage.

### See Also

`cut`, `factor`

### Examples

    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"

[Package car version 2.1-4 Index]