从R中的数据帧中提取唯一的组合行

Cad*_*ama 2 r

我有一个数据框,给出了同一个州提供的人的成对相关性.我给出了一个关于我希望如何处理这些数据的小例子,但是现在我的实际数据集有成对相关的1500万行和更多的附加列.

以下是示例数据:

>sample_data

Pair_1ID    Pair_2ID    CORR    
1           2           0.12    
1           3           0.23    
2           1           0.12    
2           3           0.75    
3           1           0.23    
3           2           0.75    
Run Code Online (Sandbox Code Playgroud)

我想生成一个没有重复的新数据帧,例如在第1行中,人1和2之间的相关性是0.12.第1行与第3行相同,它显示了2和1之间的相关性.由于它们具有相同的信息,我希望最终文件没有重复,我想要一个类似下面的文件:

>output 


Pair_1ID    Pair_2ID    CORR
    1        2          0.12
    1        3          0.23
    2        3          0.75
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?独特的命令不适用于此,我不知道该怎么做.

flo*_*del 10

假设每个组合出现两次:

subset(sample_data , Pair_1ID <= Pair_2ID)
Run Code Online (Sandbox Code Playgroud)

如果不:

unique(transform(sample_data, Pair_1ID = pmin(Pair_1ID, Pair_2ID),
                              Pair_2ID = pmax(Pair_1ID, Pair_2ID)))
Run Code Online (Sandbox Code Playgroud)

编辑:对于这最后一个,包括CORRunique不是因为可能的浮点问题一个伟大的想法.我也看到你提到你有更多的专栏.因此,最好将比较限制为两个ID:

relabeled <- transform(sample_data, Pair_1ID = pmin(Pair_1ID, Pair_2ID),
                                    Pair_2ID = pmax(Pair_1ID, Pair_2ID))
subset(relabeled, !duplicated(cbind(Pair_1ID, Pair_2ID)))
Run Code Online (Sandbox Code Playgroud)