recode: Recoding variables (vectors)

View source: R/recode.R

recodeR Documentation

Recoding variables (vectors)

Description

Transform the input vector into a new vector by replacing old values with new values according to the specified rules.

Usage

recode(x, fromto, ...)

## Default S3 method:
recode(x, fromto, ...)

## S3 method for class 'data.frame'
recode(x, fromto, ...)

## S3 method for class 'matrix'
recode(x, fromto, ...)

Arguments

x

atomic vector, variable to be recoded

fromto

two-column matrix or data frame, or a list

...

Only used in the default method and expects further elements of the recoding rule set

Details

This is a generic function that dispatches methods based on the class of the fromto argument, which expects the recoding rule(s).

If fromto is a vector it should have an even number of elements. It is interpreted such that values x = fromto[i] is recoded into a value fromto[i+1], x = fromto[i+2] into fromto[i+3] and so on.

If fromto is a data frame, then it is expected to have two columns. The mode of the result is determined by the mode of the second column of fromto. For each 'i', values of x equal to fromto[i,1] are replaced with fromto[i,2].

If fromto is a matrix, it is converted to a data frame and an appropriate method is used.

Value

Vector of the same mode as second column of fromto and length as x with the values recoded.

See Also

match

Examples

# Input vector
x <- c(1,2,3,4,3,2,1)

# Recoding with rules as a matrix
rmat <- matrix( c(1, 10, 4, 40), 2, 2, byrow=TRUE)
data.frame(
  old=x,
  new=recode(x, rmat)
)

# Recoding with a data frame
d <- data.frame(from = c(2, 3),
                to = c("two", "three") )
data.frame(
  old = x,
  new = recode(x, d)
)



# Recoding with rule sets
r <- recode(x,
            c(1,2), "one or two",
            c(3,4), "three or four",
            5, "five")
data.frame(old=x, new=r)

mbojan/recode documentation built on Jan. 16, 2024, 12:29 a.m.