【问题标题】:Data preparation for arules algorithmarules算法的数据准备
【发布时间】:2018-02-21 15:36:14
【问题描述】:

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

userid p1 p2 p3
1      1  0  0 
2      1 1   0
3      0  1  1
4      0  1  0

我需要交易文件

1  p1
2 p1
2 p2
3 p2
3 p3
4 p2

你们能帮我解决这个问题吗?

谢谢。

【问题讨论】:

    标签: r arules


    【解决方案1】:

    您只需将数据转换为logical

     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   
    

    【讨论】:

      【解决方案2】:

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

      row.names(which(t(df1[-1])==1, arr.ind = TRUE))
      #[1] "p1" "p1" "p2" "p2" "p3" "p2"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 2019-01-02
        相关资源
        最近更新 更多