我有一个不同用户(USER)的数据框。每个用户都有不同的项目(ITEM):
USER DATE ITEM
A 1 alpha
A 1 beta
A 1 gamma
A 2 alpha
A 2 gamma
A 4 beta
A 4 gamma
B 1 alpha
B 1 beta
...
对于不同长度的项目组合,我想计算具有特定组合的用户数量。
输出应该是这样的:
amount_of_users combination_of_items
2 (alpha,beta)
1 (alpha,gamma)
1 (beta,gamma)
1 (alpha, beta, gamma)
如果用户有项目 alpha,任何 2-,3-,4-项目组合计数,他应该出现,因为他清楚地得到了与其他项目的项目 - 但仍然在同一天。
更新:正如 DWin 正确指出的那样,目前尚不清楚我试图实现的目标。让一个用户拥有项目:alpha,beta,gamma。然后这个用户应该被添加到它的任何子集的每个计数中,这意味着组合 (alpha,beta) (beta,gamma) (alpha,gamma) 和最后 (alpha, beta, gamma) 都得到 count+1。
同时我想,对于我的主要目标(我想看看,最突出的项目是什么,被添加到特定的项目,例如阿尔法)我可以只计算用户的数量,使用表和 colSums,请找到我的非常糟糕的解决方案,但表明项目,被添加最多。
levels(x$TARGETGROUP)[c(8,15:17,39,41,57,58,61)] <- c("HOME")
levels(x$TARGETGROUP)
dings <- table(x[,1],x[,3])
str(dings)
#i saw, that the 8th column contains item I needed.
haeuf <- colSums(dings[dings[,8]!=0, ])