【发布时间】:2019-08-27 18:11:39
【问题描述】:
我有一些数据如下图:
Sample_Name RP Outlier rs10033147 rs1019916 rs1040870 rs10457834 rs10796216 rs10882854
31 2011 25 -5.408103 AB AA AA AB AB AB
33 10145 25 -5.205900 AB BB BB AB BB AB
5 2300 10647 -5.361135 AA AA AA AA AB AA
21 20110 10647 -5.043994 AA AB AA BB AB BB
24 2013 10647 -5.480397 AA AB AA BB AB BB
28 200 10647 -4.635197 AA AB AA BB AB BB
2 20110 11458 -4.935565 BB AA BB AA AB BB
9 2311 11458 -4.913464 BB AA BB AA AB BB
32 200901 11458 -4.721801 BB AA BB AA AB BB
我想使用RP 列对它们进行分组,并检查从第 4 列开始的行是否相同。我想为不同的行提供不同的值(0/1)。如果一个组中只有两行并且这两行不同,则给出不同的值。如果多于两行,则为相同的行赋予相同的值,而为其他行赋予不同的值。组中所有不同的行将具有相同的值。
我从dplyr 尝试了group_by,但不知道如何从那里继续。显示所需的输出。
输出:
Sample_Name RP Outlier rs10033147 rs1019916 rs1040870 rs10457834 rs10796216 rs10882854 ID
31 2011 25 -5.408103 AB AA AA AB AB AB 0
33 10145 25 -5.205900 AB BB BB AB BB AB 1
5 2300 10647 -5.361135 AA AA AA AA AB AA 0
21 20110 10647 -5.043994 AA AB AA BB AB BB 1
24 2013 10647 -5.480397 AA AB AA BB AB BB 1
28 200 10647 -4.635197 AA AB AA BB AB BB 1
2 20110 11458 -4.935565 BB AA BB AA AB BB 1
9 2311 11458 -4.913464 BB AA BB AA AB BB 1
32 200901 11458 -4.721801 BB AA BB AA AB BB 1
【问题讨论】:
-
我相信你可以在这里使用“排序超过分区”的逻辑。试试 plyr 中的 ddply 函数。