-1

我有一个看起来像这样的数据框:

              SFOpID Number MAGroupID
1 0032A00002cgs3XQAQ      1        99
2 0032A00002cgs3XQAQ      1        79
3 003F000001vyUGKIA2      2         8
4 0032A00002btWE6QAM      3        97
5 0032A00002btWE6QAM      3        86
6 0032A00002btWE6QAM      3        35

我需要转置它,使它看起来像这样:

              SFOpID Number MAGroupID
1 0032A00002cgs3XQAQ      1        99  79
3 003F000001vyUGKIA2      2         8

然后为五个最常见的序列生成计数,例如:12 人 (SFOpID) 具有 97 86 35 序列,但只有 4 人具有 99 79 序列。我认为这可能通过 arules 包执行如下操作:

x <- read_baskets(con  = system.file("misc", "zaki.txt", package = 
                                 "arulesSequences"),
      info = c("sequenceID","eventID","SIZE"))
      as(x, "data.frame")

目标是获得如下所示的输出:

       items sequenceID eventID SIZE
 1      {C,D}          1      10    2
 2    {A,B,C}          1      15    3
 3    {A,B,F}          1      20    3
 4  {A,C,D,F}          1      25    4
 5    {A,B,F}          2      15    3

只是,对于项目,它将是像 {99, 79} 或 {97, 86, 35} 这样的序列

4

1 回答 1

0

您可以使用 group_by 和 next 将值收集到一个列表中。该列表可以转换为文本。这是一个例子:

 code <- read.csv("code.csv", stringsAsFactors = F)
  library(dplyr)
  output <- code[, 2:4]%>%
    group_by(Number, MAGroupID) %>%
    nest()
  output$data <- as.character(output$data )
于 2018-08-15T22:49:03.927 回答