R: Hash Table/Dictionary Lookup 'lookup_e' - Environment based...

lookup_e {qdapTools} | R Documentation

## Hash Table/Dictionary Lookup `lookup_e` - Environment based hash table useful for large vector lookups.

### Description

Hash Table/Dictionary Lookup

`lookup_e` - Environment based hash table useful for large vector lookups.

`%le%` - A binary operator version of `lookup_e` for when `key.match` is a data.frame or named list.

`%le+%` - A binary operator version of `lookup_e` for when `key.match` is a data.frame or named list and `missing` is assumed to be `NULL`.

### Usage

    lookup_e(terms, key.match, key.reassign = NULL, missing = NA)

    ## S3 method for class 'matrix'
    lookup_e(terms, key.match, key.reassign = NULL,
      missing = NA)

    ## S3 method for class 'data.frame'
    lookup_e(terms, key.match, key.reassign = NULL,
      missing = NA)

    ## S3 method for class 'list'
    lookup_e(terms, key.match, key.reassign = NULL, missing = NA)

    ## S3 method for class 'numeric'
    lookup_e(terms, key.match, key.reassign = NULL,
      missing = NA)

    ## S3 method for class 'factor'
    lookup_e(terms, key.match, key.reassign = NULL,
      missing = NA)

    ## S3 method for class 'character'
    lookup_e(terms, key.match, key.reassign = NULL,
      missing = NA)

    terms %le% key.match

    terms %le+% key.match

### Arguments

`terms` | A vector of terms to undergo a lookup_e.
`key.match` | Takes one of the following: (1) a two column data.frame of a match key and reassignment column, (2) a named list of vectors (Note: if data.frame or named list supplied no key reassign needed) or (3) a single vector match key.
`key.reassign` | A single reassignment vector supplied if key.match is not a two column data.frame/named list.
`missing` | Value to assign to terms not matching the key.match. If set to `NULL` the original values in `terms` corresponding to the missing elements are retained.

### Value

Outputs A new vector with reassigned values.

### See Also

`new.env`, `lookup`,

### Examples

    lookup_e(1:5, data.frame(1:4, 11:14))

    ## Retain original values for missing
    lookup_e(1:5, data.frame(1:4, 11:14), missing=NULL)

    lookup_e(LETTERS[1:5], data.frame(LETTERS[1:5], 100:104))
    lookup_e(LETTERS[1:5], factor(LETTERS[1:5]), 100:104)

    ## Supply a named list of vectors to key.match

    codes <- list(
        A = c(1, 2, 4),
        B = c(3, 5),
        C = 7,
        D = c(6, 8:10)
    )

    lookup_e(1:10, codes)

    ## Supply a single vector to key.match and key.reassign

    lookup_e(mtcars$carb, sort(unique(mtcars$carb)),
        c("one", "two", "three", "four", "six", "eight"))

    lookup_e(mtcars$carb, sort(unique(mtcars$carb)),
        seq(10, 60, by=10))

    ## %le%, a binary operator version of lookup
    1:5 %le% data.frame(1:4, 11:14)
    1:10 %le% codes

    1:12 %le% codes
    1:12 %le+% codes

[Package qdapTools version 1.3.3 Index]