我有一个交易格式为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;)
这样我相信我会很容易达到要求的结果。真的很感谢你的帮助。答案 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 | . . . | .
是真/假值的矩阵(这里缩写为适合空格)。根本不需要查看列表表单。