【问题标题】:Count paired columns and aggregating计算配对列并聚合
【发布时间】:2019-02-28 11:29:08
【问题描述】:

我有一个数据框,它链接了两个因素:

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

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

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

如您所见,列 ij 的顺序并不重要。我已经尝试使用tabledplyr 使用 group_by 和 summarise(Count = n()) 但我无法使其工作,因为它独立计算每个配对,因此它不会聚合 A1-B2 和 B2-A1。

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

【问题讨论】:

    标签: r count dplyr


    【解决方案1】:

    您可以使用apply 与margin 1 进行按行排序,然后使用table 函数进行计数,即

    table(apply(df, 1, function(i)toString(sort(i))))
    
    #A1, B2 A2, B3 A5, D6 
    #     2      2      1 
    

    注意:您可以将结果包装在 data.frame 中并根据您的需要操作输出

    【讨论】:

    • 谢谢!直截了当的解决方案! +1
    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2018-05-22
    • 2016-07-26
    • 1970-01-01
    • 2014-02-07
    • 2018-01-14
    • 2019-06-19
    相关资源
    最近更新 更多