1
我有一個df
,如:加入其中有一個數據幀行類似(但不等於)值
SampleID Chr Start End Strand Value
1: rep1 1 11001 12000 - 10
2: rep1 1 15000 20100 - 5
3: rep2 1 11070 12050 - 1
4: rep3 1 14950 20090 + 20
...
而且我想加入共享相同chr
和strand
,並具有類似的起始行和終點(比如說100 +/-距離)。對於執行行連接的那些列,我還想連接SampleID
名稱和Value
。與前面的示例類似:
SampleID Chr Start End Strand Value
1:rep1,rep2 1 11001 12000 - 10,1
2: rep1 1 15000 20100 - 5
4: rep3 1 14950 20090 + 20
...
想法?謝謝!
編輯:
我發現fuzzyjoin包R(https://cran.r-project.org/web/packages/fuzzyjoin/index.html)。有沒有人有這個包的經驗?
EDIT2:
這也將是不錯的,如果只是變量(SampleID
或Value
)中的一個將被連接起來。
哇!這很好,我想知道你是否可以用剛剛使用的命令更清楚一些。如果我錯了,請糾正我: 您爲每個查看「Chr」,「Strand」和「Start」和「End」的條件生成一個「標籤」,它滿足我要求的要求(+/- 100 )。然後你加入具有相同「標籤」的標籤,並將「SampleID」和「Value」添加爲一個字符串。我對嗎? 在我的'data.table'中發生的另一件奇怪事情是,恰好在相同位置的行不執行連接。問題在哪裏? – Tato14
@ Tato14在第一組'df [i,j,by]'中,我們用'order'指定'i',以便按升序排列值。 'by'是分組變量'Chr','Strand',在'j'中,我們將邏輯輸出的run-length-id('rleid')分配爲新列,然後在第二組中,我們正在通過操作進行分組。現在還不清楚你什麼時候行數完全在sam位置的行不會執行連接' – akrun
感謝您的解釋!關於最後一部分,「位置」的意思是「Chrom」,「Strand」,「Start」和「End」。 – Tato14