我正在尝试使用R创建经常一起购买的产品的频率表(按类别)。
我的数据包含以下信息:
OrderID CategoryCode4
On_line_Data2 <- read_excel("On-line Data2.xlsx", col_types =c("text","text"))
实际上是什么,人们已经购买了多种产品,我们想要创建一个频率图表,以表示“ A”和“ B”被购买了多少次; “ A”与“ C”一起购买; 'A'与'D'; “ B”与“ C”一起购买; 'B'与'D';在大量项目中为“ C”和“ D”。
orderID对于每个订单来说都是唯一的,但是可以针对每个产品记录,因此可以在每一行中重复(仅由类别代码表示。每个类别代码可以在每个订单中重复,因此数据可能如下:
OrderID CategoryCode4
---------------------------
Order1 catA
Order1 catA
Order1 catB
Order2 catA
Order2 catB
Order3 catA
Order3 catC
Order4 catA
Order4 catD
Order5 catA
Order5 catE
输出类似于
CatA & CatB 2
CatA & CatC 1
CatA & CatD 1
CatA & CatE 1
我不在乎输出是否既有'CatA & CatB = 2
'又有'CatB & CatA = 2
'或等于3,因为Order1中A的2倍,尽管这不是什么主意。
我完全被困住了,我什至不知道谷歌能够做到这一点。任何帮助将不胜感激。
答案 0 :(得分:0)
我不确定您的数据是什么样子,您至少应该提供一部分数据。 尝试使用mtcars数据为您提供一个思路。
library(dplyr)
df <- mtcars %>% group_by(gear) %>% summarise(comb = list(combn(disp, 2)))
comb <- Reduce(rbind, lapply(df$comb, t))
table(comb[,1], comb[,2])