仅当存在于另一个数据框中时才将行保留在数据框中

Gre*_*del 2 r

你好,我有 2 个数据框

DF1

query   Qstart  Qend    Col3    Col4
ABEL1   1   50  A   B
ABEL2   2   51  P   O
ABEL3   3   52  S   E
ABEL4   4   53  Q   L
ABEL5   5   54  A   J
Run Code Online (Sandbox Code Playgroud)

和DF2

seqnames    start   end
ABEL2   2   51
ABEL3   3   52
ABEL5   5   54
Run Code Online (Sandbox Code Playgroud)

并且我只想在 seqnames、start 和 end 对应于 DF2 时保留在 DF 行中

这里只保留了 Abel2,3 和 5,我得到:

NEW_DF

query   Qstart  Qend    Col3    Col4
ABEL2   2   51  P   O
ABEL3   3   52  S   E
ABEL5   5   54  A   J
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助 :)

lin*_*nog 5

你想要一个看起来有点不同的列名的内部连接:

merge(x = df1, y = df2, by.x = c("query", "Qstart", "Qend"), 
      by.y = c("seqnames", "start", "end"))

  query Qstart Qend Col3 Col4
1 ABEL2      2   51    P    O
2 ABEL3      3   52    S    E
3 ABEL5      5   54    A    J
Run Code Online (Sandbox Code Playgroud)