私は以下のようなデータベースを持っています。行の間の区間の交差を比較して取得する
pos1<-c(5,15,25,40,80,5,18,22,38,84,5,16,50,92,31,50,20,30,50,70,27,50,60,50,90,20,40)
pos2<-c(10,17,30,42,90,10,20,24,42,87,10,19,52,100,40,70,25,32,60,90,30,60,71,60,100,25,50)
chr<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2)
n<-c(25,65,78,56,35,78,58,98,14,25,65,85,98,74,20,36,48,98,52,69,21,47,53,10,12,37,82)
pop<-c("A","A","A","A","A","B","B","B","B","C","C","C","C","C","D","D","A","A","A","A","B","B","B","C","C","D","D")
data<-data.frame(pos1,pos2,chr,pop,n)
位置1および位置2は、各chrおよび母集団の間隔の開始点および終了点を設計しました。私の意図は、ポップA、B、C(Dではない)と各母集団ごとに一意の間隔との交点を求めることです。
ので、独特の間隔で私は次のような成果data.frameを持っているでしょう:
:pos1.u<-c(25,50,92,20,30,27,90)
pos2.u<-c(30,52,100,25,32,30,100)
chr.u<-c(1,1,1,2,2,2,2)
pop.u<-c("A","B","C","A","A","B","C")
n.u<-c(78,98,74,48,98,21,12)
data.u<-data.frame(pos1.u,pos2.u,chr.u,pop.u,n.u)
そして、それらの3つの集団の間で、次のようなdata.frameを交差区間ため
pos1.c<-c(5,15,40,80,5,38,85,5,16,50,70,50,60,50)
pos2.c<-c(10,17,42,90,10,42,87,10,19,60,90,60,71,60)
chr.c<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2)
pop.c<-c("A","A","A","A","B","B","B","C","C","A","A","B","B","C")
n.c<-c(25,65,56,35,78,14,25,65,85,52,69,47,53,10)
data.c<-data.frame(pos1.c,pos2.c,chr.c,pop.c,n.c)
正確にこれを行うスクリプトを書く方法がわかりません。お手伝いできますか?
「これらの3つの集団の交差」とはどういう意味ですか? A、B、Cで発生するpos1、pos2、およびchrの組み合わせは、5,10、および1と50,60,2という2つしかありません。 – ulfelder
完全な交差を有するセグメントである。しかし、私は重複するすべてのセグメントに興味があります。おそらく、私は交差よりも重複して使うべきです...ごめんなさい。重複しているすべてのセグメントと、重複していないすべてのセグメントを見つけたいと思っています。あなたの質問をありがとう!あなたが私をさらに助けてくれることを願っています... – Cisco
"重複"とは、特定の組み合わせ 'chr'と' pop'に 'pos1'で始まり' pos2'で終わるシーケンスの一部が'chr'の値は同じですが、' pop'の値は違っていますか? – ulfelder