Class itemMatrix — Sparse Binary Incidence Matrix to Represent Sets of Items
The itemMatrix
class is the basic building block
for transactions, itemsets and rules in package arules.
The class contains a sparse Matrix representation of items (a set of
itemsets or transactions) and the corresponding item labels.
Sets of itemsets are represented as sparse binary matrices.
If you work with several itemMatrices at the same time (e.g.,
several transaction sets, lhs and rhs of a rule, etc.),
then the encoding (itemLabes and order of the items in the binary matrix)
in the different itemMatrices is important and needs to conform.
See itemCoding
to learn how to encode and recode itemMatrix objects.
Objects can be created by calls of the form new("itemMatrix",
...)
.
However, most of the time objects will be created by coercion from a
matrix, list or data.frame.
data
:Object of class
ngCMatrix
(from package Matrix) which stores
item occurrences in sparse representation. Note that the
ngCMatrix
is column-oriented and itemMatrix
is
row-oriented with each row representing an element (an itemset, a
transaction, etc.). As a result, the ngCMatrix
in this
slot is always a transposed version of the binary incidence matrix
in itemMatrix
.
itemInfo
:a data.frame which
contains named vectors of the length equal to the number of
elements in the set. If the slot is not empty (contains no item
labels), the first element in the data.frame must have the
name "labels"
and contain a character vector with the item
labels used for representing an item. In addition to the item
labels, the data.frame can contain arbitrary named vectors
(of the same length) to represent, e.g., variable names and values
which were used to create the binary items or hierarchical
category information associated with each item label.
itemsetInfo
:a data.frame which may contain additional information for the rows (mostly representing itemsets) in the matrix.
signature(from = "matrix", to = "itemMatrix")
;
expects from
to be a binary matrix only containing 0s and 1s.
signature(from = "itemMatrix", to = "matrix")
; coerces
to a dense 0-1 matrix of storage.mode
"integer"
instead of
"double"
to save memory.
signature(from = "list", to = "itemMatrix")
;
from
is a list of vectors. Each vector contains one
set/transaction/....
signature(from = "itemMatrix", to = "list")
; see also
the methods for LIST
.
signature(from = "itemMatrix", to = "ngCMatrix")
;
access the sparse matrix representation. Note, the ngCMatrix
contains a transposed from of the itemMatrix.
signature(from = "ngCMatrix", to = "itemMatrix")
;
Note, the ngCMatrix
has to be transposed with items as rows!
signature(object = "itemMatrix")
; combine.
signature(x = "itemMatrix")
;
returns the dimensions of the itemMatrix.
signature(x = "itemMatrix")
;
returns row (itemsetID) and column (item) names.
signature(x = "itemMatrix")
;
returns dimnames.
signature(x = "itemMatrix", value = "list")
;
replace dimnames.
signature(x = "itemMatrix", table = "character")
;
matches the strings in table
against the item labels
in x
and returns a logical vector indicating if
a row (itemset) in x
contains any of the
items specified in table
.
Note that there is a %in%
method with
signature(x = "itemMatrix", table = "character")
. This method is
described in together with match
.
signature(x = "itemMatrix", table = "character")
;
matches the strings in table
against the item labels
in x
and returns a logical vector indicating if
a row (itemset) in x
contains all of the
items specified in table
.
signature(x = "itemMatrix", table = "character")
;
matches the strings in table
against the item labels
in x
and returns a logical vector indicating if
a row (itemset) in x
contains only
items specified in table
.
signature(x = "itemMatrix", table = "character")
;
matches the strings in table
against the item labels
in x
(using partial matching) and returns a
logical vector indicating if
a row (itemset) in x
contains any of the
items specified in table
.
signature(object = "itemMatrix")
;
returns the item labels used for encoding as a character vector.
signature(object = "itemMatrix")
;
replaces the item labels used for encoding.
signature(object = "itemMatrix")
;
returns the whole item/column information data.frame including
labels.
signature(object = "itemMatrix")
;
replaces the item/column info by a data.frame.
signature(object = "itemMatrix")
;
returns the item set/row information data.frame.
signature(object = "itemMatrix")
;
replaces the item set/row info by a data.frame.
signature(x = "transactions")
;
returns labels for the itemsets. The following arguments can
be used to customize the representation of the labels:
itemSep
,
setStart
and
setEnd
.
signature(x = "itemMatrix")
; returns the number
of items (number in columns) in the itemMatrix.
signature(object = "itemMatrix")
signature(object = "itemMatrix")
Michael Hahsler
LIST
,
c
,
duplicated
,
inspect
,
is.subset
,
is.superset
,
itemFrequency
,
itemFrequencyPlot
,
itemCoding
,
match
,
length
,
sets
,
subset
,
unique
,
[-methods
,
image
,
ngCMatrix-class
(from Matrix),
transactions-class
,
itemsets-class
,
rules-class
set.seed(1234) ## Generate random data and coerce data to itemMatrix. m <- matrix(runif(100000)>0.8, ncol=20) dimnames(m) <- list(NULL, paste("item", c(1:20), sep="")) i <- as(m, "itemMatrix") ## Get the number of elements (rows) in the itemMatrix. length(i) ## Get first 5 elements (rows) of the itemMatrix as list. as(i[1:5], "list") ## Get first 5 elements (rows) of the itemMatrix as matrix. as(i[1:5], "matrix") ## Get first 5 elements (rows) of the itemMatrix as sparse ngCMatrix. ## Warning: for efficiency reasons, the ngCMatrix you get is transposed! as(i[1:5], "ngCMatrix") ## Get labels for the first 5 itemsets (first default and then with ## custom formating) labels(i[1:5]) labels(i[1:5], itemSep = " + ", setStart = "", setEnd = "") ## create itemsets from itemMatrix is <- new("itemsets", items = i[1:3]) inspect(is) ## create rules (rhs and lhs cannot share items so I use ## itemSetdiff here). Also assign (random) support. rules <- new("rules", lhs=itemSetdiff(i[4:6],i[1:3]), rhs=i[1:3], quality = data.frame(support = runif(3))) inspect(rules)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.