Skip to contents

This is a simple wrapper to the match function.

Usage

lookup(x, key, value, nomatch = NA)

Arguments

x

Vector of items to lookup in key-value pairs.

key

Vector of keys that are searched.

value

Vector of values to be returned.

nomatch

The value to be returned in the case when no match is found. Note that it is coerced to integer.

Value

A vector the same length as x, but containing the values of value. If x[i] is equal to key[j], then the value returned in the ith position of the vector is value[j]. If no match is found, NA is returned.

Details

Search for elements of x in key and return the corresponding element of value. If no match is found, return nomatch.

Author

Kevin Wright

Examples

# Example 1.  A and B have different factor levels
A <- factor(c("A","E","F"))
B <- factor(c("E","F","G"))
v <- c(4,2,0)
lookup(A,B,v)
#> [1] NA  4  2

# Example 2.  Merge treatment means back into the raw data
dat <- data.frame(Trt = rep(LETTERS[1:5],2),
                  x=round(rnorm(10),2))
# Treatment B is missing all values, treatment D missing one value
dat$x[dat$Trt=="B"] <- NA
dat$x[4] <- NA
# Calculate treatment means
TrtMean <- tapply(dat$x, dat$Trt, mean, na.rm=TRUE)
TrtMean
#>      A      B      C      D      E 
#> -0.125    NaN -1.345 -0.240  0.170 
# Merge the means into the original data
dat$TrtMean <- lookup(dat$Trt, names(TrtMean), TrtMean)