首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >转置数据和序列挖掘行中最常见的模式

转置数据和序列挖掘行中最常见的模式
EN

Stack Overflow用户
提问于 2018-08-16 03:33:40
回答 1查看 26关注 0票数 -1

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

代码语言:javascript
复制
              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

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

代码语言:javascript
复制
              SFOpID Number MAGroupID
1 0032A00002cgs3XQAQ      1        99  79
3 003F000001vyUGKIA2      2         8

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

代码语言:javascript
复制
x <- read_baskets(con  = system.file("misc", "zaki.txt", package = 
                                 "arulesSequences"),
      info = c("sequenceID","eventID","SIZE"))
      as(x, "data.frame")

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

代码语言:javascript
复制
       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}的序列

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 06:49:04

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

代码语言:javascript
复制
 code <- read.csv("code.csv", stringsAsFactors = F)
  library(dplyr)
  output <- code[, 2:4]%>%
    group_by(Number, MAGroupID) %>%
    nest()
  output$data <- as.character(output$data )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51865236

复制
相关文章

相似问题

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