浓缩;“平坦”;使用arules eclat进行分析的事件列表
我有一个类似这样的文件(人员ID和产品名称列表) 我想将它转换为类似这样的东西(每个人购买的产品列表),用于eclat 我所能做的最好的事情就是将其作为数据帧读取,并尝试使用apply函数的变体来创建新的数据结构浓缩;“平坦”;使用arules eclat进行分析的事件列表,r,R,我有一个类似这样的文件(人员ID和产品名称列表) 我想将它转换为类似这样的东西(每个人购买的产品列表),用于eclat 我所能做的最好的事情就是将其作为数据帧读取,并尝试使用apply函数的变体来创建新的数据结构 collectValues <- function(obs,map) { a = obs[1][1] b = obs[2][1] if( ! (a %in% map) ) { map[[a]] <- list(b) } else { c(ma
collectValues <- function(obs,map) {
a = obs[1][1]
b = obs[2][1]
if( ! (a %in% map) ) {
map[[a]] <- list(b)
} else {
c(map[[a]], b)
}
}
collectValues我想你在追求split
如下:
dat <- read.table(text="123 A
123 B
123 D
456 A
456 B
123 C", header=FALSE, stringsAsFactors = FALSE)
lapply(split(dat[, 2], dat[, 1]), sort)
## $`123`
## [1] "A" "B" "C" "D"
##
## $`456`
## [1] "A" "B"
dat这工作做得很好-谢谢。对于eclat,似乎不需要排序。。。
collectValues <- function(obs,map) {
a = obs[1][1]
b = obs[2][1]
if( ! (a %in% map) ) {
map[[a]] <- list(b)
} else {
c(map[[a]], b)
}
}
dat <- read.table(text="123 A
123 B
123 D
456 A
456 B
123 C", header=FALSE, stringsAsFactors = FALSE)
lapply(split(dat[, 2], dat[, 1]), sort)
## $`123`
## [1] "A" "B" "C" "D"
##
## $`456`
## [1] "A" "B"