如何计算数据集中元素的组合?

时间:2015-05-13 11:27:19

标签: r count dataset combinations

我有以下格式的订单数据集:

Ordernumber; Category; # Sold Items
123; A; 3
123; B; 4
234; B; 2
234; C; 1
234; D; 5
...

因此,每个订单的行数与订单中的不同类别一样多。

现在,我想要计算每个类别对在一个订单中一起订购的频率。

最后,我希望得到一个"相关性"像这样的矩阵

   A  B  C  D
A     1  
B  1     1  1
C     1     1
D     1  1

有没有一个好(简单)的想法?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

也许使用矩阵乘法可以实现:

dat <- read.table(header=T, text="Ordernumber; Category;  Sold Items
123; A; 3
123; B; 4
234; B; 2
234; C; 1
234; D; 5", sep=";")


tt <- table(dat[1:2])

crossprod(tt) # t(tt) %*% tt

#        Category
#Category  A  B  C  D
#       A  1  1  0  0
#       B  1  2  1  1
#       C  0  1  1  1
#       D  0  1  1  1

这具有对角线,但可以使用diag

轻松删除