# [R] Support Counting

Petr Savicky savicky at praha1.ff.cuni.cz
Mon Apr 4 11:37:25 CEST 2011

```On Mon, Apr 04, 2011 at 01:11:37AM -0500, psombe wrote:
> Hi,
>    I'm new to R and trying to some simple analysis. I have a data set with
> about 88000 transactions and i want to perform a simple support count
> analysis of an itemset which is say not a complete transaction but a subset
> of a transaction.
> say
>
> {A,B,D} is a transaction and i want to find support of {A,B} even though it
> never occurs as only A,B in the entire set
>
>
>  To this i needed to create a new itemsets class and then use the support
> function but somehow the answers never seem to tally.

Hi.

The answer depends on the representation of the data set. Can you
describe the representation?

A possible representation of a data set for itemsets counting is a matrix
of 0/1. Using this representation, computing the support may be done
as follows.

db <- matrix(0, nrow=5, ncol=5, dimnames=list(NULL, LETTERS[1:5]))
db[1, c("A", "B", "D")] <- 1
db[2, c("A", "B")] <- 1
db[3, c("A", "D", "E")] <- 1
db[4, c("B", "C", "D")] <- 1
db[5, c("A", "B", "C")] <- 1
db

A B C D E
[1,] 1 1 0 1 0
[2,] 1 1 0 0 0
[3,] 1 0 0 1 1
[4,] 0 1 1 1 0
[5,] 1 1 1 0 0

itemset <- c("A", "B")

# for each transaction, whether it contains c("A", "B")
rowSums(db[, itemset]) == length(itemset)

[1]  TRUE  TRUE FALSE FALSE  TRUE

# the number of transactions containing c("A", "B")
sum(rowSums(db[, itemset]) == length(itemset))

[1] 3

Hope this helps.

Petr Savicky.

```