类别重叠分析

我正在尝试执行一些类别重叠分析并需要帮助。

我有由客户服务票据组成的数据。 票据标有分类数据。 门票可以包含多个类别标签。

我有一个查询,拉票ID和类别。 我得到多个行的ID与多个类别。 我正在寻找一种方法来显示类别重叠,例如:有多less票有A类,有A和B,B和C等。

我希望能够在Excel或R中执行此操作,以便将其轻松纳入到我的pipe理报告中。

我的查询输出的一个例子如下:

category ticket_id A 3975472 D 3975472 B 3975472 P 3969484 B 3969484 S 3969484 P 3968360 C 3968360 D 3964048 A 3964048 C 3963748 E 3963748 

谢谢!

我希望能达到如下的输出:

desired_output

Excel您可以使用数据透视表执行此操作:

枢

R ,假设数据在一个名为df的数据框中,你可以这样做:

 table(df$ticket_id, df$category) # ABCDEPS # 3963748 0 0 1 0 1 0 0 # 3964048 1 0 0 1 0 0 0 # 3968360 0 0 1 0 0 1 0 # 3969484 0 1 0 0 0 1 1 # 3975472 1 1 0 1 0 0 0 

这是一个有趣的问题。 希望下面的代码提供解决scheme。 我正在使用库reshape2进行一些数据重新排列。

 set.seed(1) # creating a sample dataset dat <- data.frame(category = sample(x = letters[1:6], size = 1000,replace = T), ticket = sample(x = 1000:1500, size = 1000,replace = T)) dat <- unique(dat) dat <- dat[order(dat$ticket, dat$category),] head(dat) category ticket 311 a 1000 916 c 1000 978 d 1000 949 f 1000 72 f 1001 597 c 1002 library(reshape2) #same as table function but gives a data frame tab <- dcast(dat,ticket ~ category, length) #create all possible 2-way combinations levels <- sort(unique(dat$category)) combs <- data.frame(rows = rep(levels,times = length(levels)), cols = rep(levels,each = length(levels))) #calculate count for each combination combs$count <- apply(combs,1,function(x) sum(tab[,x[1]] & tab[,x[2]])) overlap <- dcast(combs, rows ~ cols) #convert output into a square matrix rows abcdef 1 a 140 38 36 41 36 42 2 b 38 128 48 32 41 39 3 c 36 48 161 35 49 36 4 d 41 32 35 123 32 35 5 e 36 41 49 32 139 38 6 f 42 39 36 35 38 138 

让我知道这是否需要进一步解释。