您好我有一個複雜的問題的信息,我想不出如何解決。如何查找數據幀1的每一行給定的位置,在數據幀2來提取數據幀2
我有兩個數據框,我想有條件地匹配一列df1到df2。
Df1:
gene int start_pos end_pos tag
A 1 233 422 a1
A 2 622 766 a2
A 3 1021 1211 ab
A 4 1400 1500 b1
A 4 2000 2200 b2
B 1 122 233 a1
B 2 332 665 a2
C 1 199 433 a1
C 2 776 899 a2
df2:
Gene type pos
A shrt 680
A long 1420
B shrt 350
C long 790
我想匹配這兩個表,根據'pos'信息。
我想:檢查DF2 POS(位置)每個基因,並發現它在DF1位置。例如df 2 A-680中的第一行,我想在df1中找到基因A,然後搜索位置680,並找到哪個'標記'對應於這個位置。
所以在最後我想一列添加到DF2的基礎上,從DF1標籤信息,像這樣:
df2:
Gene type pos tag
A shrt 680 a2
A long 1420 b1
B shrt 350 a2
C long 790 a2
我找不到任何解決辦法做到這一點。合併不起作用,因爲我無法制作唯一的標識符。我找不到匹配功能的解決方案。
注:df1基本上是一個參考數據。 df 2中的所有位置都在df1的開始和結束之間。我想查找df1中每個位置的標籤信息。
我被卡住了。任何幫助都會很棒。
謝謝!
謝謝!這解決了我的問題。我使用了兩個'list'而不是'dataframe'的解決方案,它工作(列表是因爲我爲df1和df2導入了兩個csv文件)。 – AGG
除了更改列的名稱,你可以使用by.x&by.y,它告訴R來使用這兩列匹配 – Kou