我有一个包含三列的数据表。前两个是数据点的集合(可以是A,B或C的分类数据)。第三列是两个数据点的集合,因为它们属于一个集合。我需要获取可能组合的计数,并且需要将“ A&C”与“ C&A”作为同一组的一部分进行计数,因为这些对的顺序无关紧要。
以前,我设置了一个列,将“ CAT1&CAT2”串联起来,然后将另一个列“ CAT2&CAT1”串联起来,希望在那里进行汇总,但是这些数字当然不能正确地相加。
library(data.table)
dt1 = data.table(CAT1 = c('a','b','c','b','a','c','c','b','a','c'),
CAT2 = c('a','b','c','a','b','c','a','b','c','a'))
dt1[,merged := paste(dt1$CAT1, dt1$CAT2, sep = ' & ')]
counts = data.table(table(dt1$merged))
输出表“ counts”为我提供了合并列的所有唯一性,但是我需要在翻转数据点的任何地方进行总结(“ A&C” +“ C&A”)。我知道可以手动完成此操作,但是我要手工完成的实际数据点太多了。
dt1[,paste(sort(c(CAT1,CAT2)),collapse=" & "),by=1:nrow(dt1)][,table(V1)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句