根据列值提取和对齐行

时间:2013-07-03 04:05:53

标签: r formatting

我有一个如下所示的数据集:

ID      Value   ID2     Value2
26390   1.1     26400   11.1
26400   2.4     26405   11.8
26405   15.6    26410   11.6
26410   0       26420   11.9
26420   0       26430   3.3
26440   0       26455   5.9

我想要做的是拉出并对齐匹配的ID的Value和Value2数据。例如,这是我想从上面回过头来的:

ID      Value   ID2     Value2
26400   2.4     26400   11.1
26405   15.6    26405   11.8
26410   0       26410   11.6
26420   0       26420   11.9

有关如何在R中执行此操作的任何想法? 谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用merge()执行此操作。假设您的数据为dat

dat.align <- merge(dat[,1:2], dat[,3:4], by.x = "ID", by.y = "ID2")
dat.align
#      ID Value Value2
# 1 26400   2.4   11.1
# 2 26405  15.6   11.8
# 3 26410   0.0   11.6
# 4 26420   0.0   11.9