计算成对的列并进行汇总

时间:2019-02-28 11:29:09

标签: r count dplyr

我有一个链接两个因素的数据框:

X       Y
A1      B2
A2      B3
A5      D6
B2      A1
B3      A2     

我想计算成对出现的次数,例如:

 i      j      Count
 A1     B2       2
 A2     B3       2
 A5     D6       1

如您所见,列 i j 的顺序并不重要。我已经尝试使用group_by和tabledplyr并进行了汇总(Count = n()),但由于它独立地对每个配对进行计数,因此我无法使其工作,因此它不会聚合A1-B2和B2- A1。

我真的很感谢一些建议,因为这是一个相对容易的任务,但对我的研究而言却并非微不足道。

1 个答案:

答案 0 :(得分:2)

您可以使用apply和页边距1对行进行排序,然后使用table函数进行计数,即

table(apply(df, 1, function(i)toString(sort(i))))

#A1, B2 A2, B3 A5, D6 
#     2      2      1 

注意::您可以将结果包装在data.frame中,并根据需要调整输出