,我有以下数据的data.frame:如何将data.frame转换为R中arules的事务数据?
行:用户
列:不同的项目的编码二进制
User Item1 Item2 ItemM
1 0 1 1
2 0 1 1
3 1 1 1
4 1 0 1
N 1 1 1
我怎样才能改变我data.frame到事务逐行篮 使用R中的“arules”包?
感谢您的帮助!
,我有以下数据的data.frame:如何将data.frame转换为R中arules的事务数据?
行:用户
列:不同的项目的编码二进制
User Item1 Item2 ItemM
1 0 1 1
2 0 1 1
3 1 1 1
4 1 0 1
N 1 1 1
我怎样才能改变我data.frame到事务逐行篮 使用R中的“arules”包?
感谢您的帮助!
希望这有助于!
library(arules)
df <- data.frame(
User = c(1,2,3,4),
Item1 = c(0,0,1,1),
Item2 = c(1,1,1,0),
Item3 = c(1,1,1,1))
l = lapply(apply(df[,-1], 1, function(x) names(df[,-1])[x==1]),
function(x) paste(x,collapse = ","))
write(sapply(l, function(x) toString(x)), file = "demo_basket")
tr <- read.transactions("demo_basket", format = "basket", sep=",")
@ ira01 - 以下内容可能接近您的期望。发现另一个问题(https://stackoverflow.com/a/22793606/8382207):
> simplify2array(
apply(
df[1:4], 1,
function(x) paste(names(df[1:4])[x != 0], sep = " ")
)
)
[[1]]
[1] "User" "Item2" "ItemM"
[[2]]
[1] "User" "Item2" "ItemM"
[[3]]
[1] "User" "Item1" "Item2" "ItemM"
[[4]]
[1] "User" "Item1" "ItemM"
[[5]]
[1] "User" "Item1" "Item2" "ItemM"
请问您能显示预期的输出吗? – Sagar
我想知道哪些项目经常一起购买以及项目组合的相关程度如何。 所以:我有数据按行约每个用户约16个项目 - >即:用户1:(0,1,0,0,0,0,0,0,1,1,1,1, 1,0,1) – ira01
我已经尝试将我的data.frame中的项目转换为因子,并将其转换为“as(myDataFrame,”transactions“)”,但做了arule之后的输出结果并不符合我的预期。 – ira01