R: Item Coding - Conversion between Item Labels and Column IDs

itemCoding {arules} | R Documentation

## Item Coding — Conversion between Item Labels and Column IDs

### Description

Provides the generic functions and the S4 methods to translate between the binary representation in the itemMatrix format (used in transactions, rules and itemsets), item labels and numeric item IDs (i.e., the column numbers in the binary representation).

### Usage

    encode(x, ...)
    ## S4 method for signature 'list'
    encode(x, itemLabels, itemMatrix = TRUE)
    ## S4 method for signature 'character'
    encode(x, itemLabels, itemMatrix = TRUE)
    ## S4 method for signature 'numeric'
    encode(x, itemLabels, itemMatrix = TRUE)

    recode(x, ...)
    ## S4 method for signature 'itemMatrix'
    recode(x, itemLabels = NULL, match = NULL)

    decode(x, ...)
    ## S4 method for signature 'list'
    decode(x, itemLabels)
    ## S4 method for signature 'numeric'
    decode(x, itemLabels)

### Arguments

`x` | a vector or a list of vectors of character strings (for `encode`) or of numeric (for `decode`), or an object of class `itemMatrix` (for `recode`).
`itemLabels` | a vector of character strings used for coding where the position of an item label in the vector gives the item's column ID. The used `itemLabels` vector can be obtained from `itemMatrix`, `transactions` and `associations` by the method `itemLabels`.
`itemMatrix` | return an object of class `itemMatrix` otherwise an object of the same class as `x` is returned.
`match` | an `itemMatrix` object whose item coding `x` should match.
`...` | further arguments.

### Details

`encode` converts from readable item labels to an itemMatrix using a given coding. With this method it is possible to create several compatible `itemMatrix` objects (i.e., use the same binary representation for items) from data.

`recode` recodes an itemMatrix object so its coding is compatible with another itemMatrix object specified in `match` (i.e., the colums are reordered to match).

`decode` converts from the colun IDs used in the temMatrix representation to item labels. `decode` is used by `LIST`.

### Value

`recode` always returns an object of class `itemMatrix`.

For `encode` with `itemMatrix = TRUE` an object of class `itemMatrix` is returned. Otherwise the result is of the same type as `x`, e.g., a list or a vector.

### Author(s)

Michael Hahsler

### See Also

`LIST`, `associations-class`, `itemMatrix-class`

### Examples

    data("Adult")

    ## Example 1: Manual decoding
    ## get code
    iLabels <- itemLabels(Adult)
    head(iLabels)

    ## get undecoded list and decode in a second step
    list <- LIST(Adult[1:5], decode = FALSE)
    list

    decode(list, itemLabels = iLabels)

    ## Example 2: Manually create an itemMatrix
    data <- list(
        c("income=small", "age=Young"),
        c("income=large", "age=Middle-aged")
        )

    iM <- encode(data, iLabels)
    iM

    inspect(iM)

    ## use the itemMatrix to create transactions
    as(iM, "transactions")

    ## Example 3: use recode
    ## select first 100 transactions and all education-related items
    sub <- Adult[1:100, itemInfo(Adult)$variables ==  "education"]
    itemLabels(sub)
    image(sub)

    ## recode to match Adult again
    sub.recoded <- recode(sub, match = Adult)
    image(sub.recoded)

    ## Example 4: manually create 2 new transaction for the Adult data set
    ##            Note: check itemLabels(Adult) to see the available labels for items
    twoTransactions <- as(encode(list(
        c("age=Young", "relationship=Unmarried"),
        c("age=Senior")
      ), itemLabels = itemLabels(Adult)),
      "transactions")

    inspect(twoTransactions)

    ## Example 5: manually create a rule and calculate interest measures
    aRule <- new("rules",
      lhs = encode(list(c("age=Young", "relationship=Unmarried")),
        itemLabels = itemLabels(Adult)),
      rhs = encode(list(c("income=small")),
        itemLabels = itemLabels(Adult))
    )

    quality(aRule) <- interestMeasure(aRule,
      measure = c("support", "confidence", "lift"), transactions = Adult)

    inspect(aRule)

[Package arules version 1.6-7 Index]