试图在R中使用arulesSequences
包。遇到问题我见过很多人遇到但没有很好的答案:从数据帧或矩阵到事务数据类型。R的序列事务类R
我已经做到了这一点,如文档中明确规定,对于arules:
a_df3 <- data.frame(TID = c(1,1,2,2,2,3), item=c("a","b","a","b","c", "b"))
a_df3
trans4 <- as(split(a_df3[,"item"], a_df3[,"TID"]), "transactions")
工作好。但是,如果我尝试了3列数据框做的一样,一切都进入疯狂:
a_df4<-data.frame(SEQUENCEID=c("1","1","1","2","2","3","3"),
EVENTID=c("1","2","3","1","2","1","2"),
ITEM=c("a","b","a","c","a","a","b"))
a_df4
SEQUENCEID EVENTID ITEM
1 1 1 a
2 1 2 b
3 1 3 a
4 2 1 c
5 2 2 a
6 3 1 a
7 3 2 b
是的,有重复,但是这正是点是不是? (找到频繁的序列集合)。
所以,现在我强迫像这样:
seqt<-as(split(myseq[,"ITEM"],myseq[,"SEQUENCEID"],myseq[,"EVENTID"]),"transactions")
我也得到:
Error in asMethod(object) :
can not coerce list with transactions with duplicated items
我已经遍布试图让通过这个简单的障碍的地方:
- 更改拆分顺序
- 将所有内容都更改为因子
- 一切直接改变成矩阵
- 饲喂数据帧像这样进入arules起作用
- 导出入.txt,导入作为read.transactions
- 导出入.txt,导入称为“篮”
- 尝试“解决方案”:here,和here(read_baskets是一个功能?)
所有错误都上述任一或当我没有得到任何我收到了TR的一个具有两列的ansaction对象,由于它需要三列,因此无法通过arulesSequences
读取OF课程:1)SEQUENCE-ID,EVENT-ID,ITEMS。
我不认为我的数据库结构可能更清晰。顺序是“顾客号码”,事件ID将是购买号码和项目,以及项目。
请任何帮助赞赏包括结构“as()”想要看到,以便它正确强制强制。
我想你的代码的第二行,并得到这个错误:更换了24行,数据为0 – hamid 2017-11-16 18:12:21