我有一个数据框,给出了同一个州提供的人的成对相关性.我给出了一个关于我希望如何处理这些数据的小例子,但是现在我的实际数据集有成对相关的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)
编辑:对于这最后一个,包括CORR在unique不是因为可能的浮点问题一个伟大的想法.我也看到你提到你有更多的专栏.因此,最好将比较限制为两个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)
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |