首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arules包-准备数据

arules包-准备数据
EN

Stack Overflow用户
提问于 2016-04-27 14:31:24
回答 1查看 91关注 0票数 0

我如何准备“事务”形式的数据,但对于每个事务ID,时间影响/顺序都被考虑在内?我发现使用"split“函数,它们将按字母顺序排序。

例如:

代码语言:javascript
复制
ID Items Sequence
1  D     1
1  A     2
1  C     3
2  A     1 
2  B     2

事务中的期望输出:

代码语言:javascript
复制
ID Items
1  D A C #notice that A comes after D as it is dictacted by sequence variable 
        #                                                        here for the order
2  A B

致以问候。

EN

回答 1

Stack Overflow用户

发布于 2016-04-27 15:52:56

使用lapply和rbind,

代码语言:javascript
复制
DF = read.table(text="ID Items Sequence
1  D     1
1  A     2
1  C     3
2  A     1 
2  B     2",header=TRUE,stringsAsFactors=FALSE,na.strings="")


DF
#  ID Items Sequence
#1  1     D        1
#2  1     A        2
#3  1     C        3
#4  2     A        1
#5  2     B        2

对于每个ID,将dataframe子集,按顺序排序,组合项目,并返回每个ID的输出

代码语言:javascript
复制
DF_new = do.call(rbind,lapply(unique(DF$ID),function(x) {

subset_DF = DF[DF$ID==x,];
subset_DF = subset_DF[,order(subset_DF$Sequence)]
subset_DF = subset_DF[,c("ID","Items")]
subset_DF$Items = paste0(subset_DF$Items,collapse=" ")
subset_DF = unique(subset_DF)
rownames(subset_DF)= NULL
return(subset_DF)
}))

DF_new
#  ID Items
#1  1 D A C
#2  2   A B
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36882018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档