我有两个数据帧 - DF1DF2

DF1
    RS1    R_Al1     B
    rs_12   A       -0.1
    rs_23   T        0.2
    rs_34   C        0.3

DF2
RS2   RefAl2   B
rs_12   C       0.5
rs_23   G      -0.3
rs_23   T       0.2
rs_34   C      -0.1
rs_23   G      -0.1
rs_34   C       0.7
rs_34   A       0.9

我需要获得 RS1RS2 列的相同顺序。如果两个数据帧之间的列长度不同,我该怎么做。

更新

预期的输出将是 DF2$RS2 ,它的顺序与 DF1$RS1 相同:
DF2$RS2

RS2
rs_12
rs_23
rs_23
rs_23
rs_34
rs_34
rs_34

最佳答案

我们可以尝试使用 matchorder

DF2[order(match(DF2$RS2, DF1$RS1)),1, drop=FALSE]
#   RS2
#1 rs_12
#2 rs_23
#3 rs_23
#5 rs_23
#4 rs_34
#6 rs_34
#7 rs_34

关于r - 在两个数据框中使相似列的顺序相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37411193/

10-09 05:26