如何在R中进行分组,其中某些行(即其他行的子集)属于多个组?

时间:2017-05-03 08:42:13

标签: r group-by row subset

这是我的数据的样子。我希望按日期ID1和ID2对行进行分组。 ID3中的行被分组为所有行,它们是第1和第2个ID匹配的子集。此外,要添加的统计数据和要生成的n()。

      date     ID1     ID2     ID3 stat1 stat2 stat3
1 12-03-07  abc123  wxy456  pqr123    10    20     30  
2 12-03-07  abc123  wxy456  pqr123    20    40     60  
3 10-04-07  bcd456  wxy456  hgf356    10    20     40  
4 12-03-07  abc123  wxy456  hfz123    30    60     90  
5 12-03-07  abc123  wxy456   <NA>     40    50     70  

期望输出

date      ID1,     ID2,   ID3,   n, stat1, stat2, stat3  
12-03-07 abc123, wxy456, pqr123, 3,   70,   110, 160  
10-04-07 bcd456, wxy456, hgf356, 1,   10,   20,  40  
12-03-07 abc123, wxy456, hfz123, 2 ,  40,   50,  70  

1 个答案:

答案 0 :(得分:0)

可能更优雅的解决方案,但通过加入然后计算平均统计数据,使用dplyr的groupby / summarize(如在Adam Quek的代码中)解决了这个问题。

       Keywords matches1 matches2
1    decomposed        1        1
2  no diagnosis        0        0
3 decomposition        0        0
4     autolysed        0        0
5       maggots        0        0
6     poor body        0        0
7          poor        0        0
8  not suitable        0        0
9  not possible        0        0