我有一个数据框,看起来像这样:
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}的序列
发布于 2018-08-16 06:49:04
您可以使用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 )
https://stackoverflow.com/questions/51865236
复制相似问题