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

arules算法的数据准备
EN

Stack Overflow用户
提问于 2018-02-21 23:36:15
回答 2查看 149关注 0票数 0

作为arules算法的数据准备的一部分,我有一个以下格式的数据。

代码语言:javascript
复制
userid p1 p2 p3
1      1  0  0 
2      1 1   0
3      0  1  1
4      0  1  0

我需要交易文件作为

代码语言:javascript
复制
1  p1
2 p1
2 p2
3 p2
3 p3
4 p2

你们能帮我个忙吗。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-02-22 00:24:07

一种方法是在逻辑matrix上使用which并提取row.names

代码语言:javascript
复制
row.names(which(t(df1[-1])==1, arr.ind = TRUE))
#[1] "p1" "p1" "p2" "p2" "p3" "p2"
票数 0
EN

Stack Overflow用户

发布于 2018-02-23 12:59:39

您所需要做的就是将您的数据转换为logical

代码语言:javascript
复制
 library("arules")

 dat <- data.frame(
   userid = 1:4, 
   p1 = c(1,1,0,0), 
   p2 = c(0,1,1,1), 
   p3 = c(0,0,1,0)
 )

 dat2 <- dat[,-1]
 for(i in 1:ncol(dat2)) dat2[[i]] <- as.logical(dat2[[i]])
 dat2

      p1    p2    p3
 1  TRUE FALSE FALSE
 2  TRUE  TRUE FALSE
 3 FALSE  TRUE  TRUE
 4 FALSE  TRUE FALSE

 tran <- as(dat2, "transactions")
 inspect(tran)

     items   transactionID
 [1] {p1}    1            
 [2] {p1,p2} 2            
 [3] {p2,p3} 3            
 [4] {p2}    4   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48909782

复制
相关文章

相似问题

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