将arules Transaction Data转换为R编程中的项矩阵

时间:2014-07-25 21:37:07

标签: r apriori arules binary-matrix

我有一个交易格式为100,000行的数据集,如下所示

B038-82C81778E81C   Toy Story
B038-82C81778E81C   Planet of the apes
B038-82C81778E81C   Iron Man
9C05-EE9B44E8C18F   Bruce Almighty
9C05-EE9B44E8C18F   Iron Man
9C05-EE9B44E8C18F   Toy Story
8F59-9956070D8005   Toy Story
8F59-9956070D8005   Gravity
8F59-9956070D8005   Iron Man
8F59-9956070D8005   Gone
B52F-9936734525AF   Planet of the Apes
B52F-9936734525AF   Bruce Almighty

我希望将其转换为矩阵格式,如下所示(或TRUE / FALSE标志)

Matrix              Toy Story  Planet of the Apes  Iron Man  Bruce Almighty   Gone  Gravity
B038-82C81778E81C    1             1                 1             0            0     0
9C05-EE9B44E8C18F    1             0                 1             1            0     0 
8F59-9956070D8005    1             0                 1             0            1     1
B52F-9936734525AF    0             1                 0             1            0     0

我尝试了以下步骤

TrnsDataset1<-read.transactions("~/Desktop/movieswid_1Copy.txt", format= c("single"), sep="\t", cols = c(1,2), rm.duplicates=TRUE);
L <- as(TrnsDataset1,"list");
M <- as(L,"matrix")
CM<- as (M,"ngCMatrix");

但是,在我的List转换中,我将输出作为

B038-82C81778E81C   c("Toy Story\nB038-82C81778E81C\tPlanet of the apes\nB038-82C81778E81C\tIron Man")
9C05-EE9B44E8C18F   c("Bruce Almighty","Iron Man","Toy Story")

因此有些行是完美的,但在某些情况下,使用\ t和\ n

在影片列表中添加唯一ID

我希望列表格式如下    9C05-EE9B44E8C18F c(&#34; Bruce Almighty&#34;,&#34;钢铁侠&#34;,&#34;玩具总动员&#34;)

这样我相信我会很容易达到要求的结果。真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我有点困惑,因为你说你想要两件事。如果您只想要稀疏矩阵,则可以跳过列表和标准矩阵变换。你可以做到

TrnsDataset1 <- read.transactions(...);
mm <- t(as(TrnsDataset1,"ngCMatrix"))

这导致

4 x 6 sparse Matrix of class "ngCMatrix"
                  Bruce Almighty Gone Gravity Iron Man Planet Toy Story
8F59-9956070D8005              .    |       |        |      .         |
9C05-EE9B44E8C18F              |    .       .        |      .         |
B038-82C81778E81C              .    .       .        |      |         |
B52F-9936734525AF              |    .       .        .      |         .

是真/假值的矩阵(这里缩写为适合空格)。根本不需要查看列表表单。