0

遺伝子 A と B の 2 つの非常に大きなリストがあります。A には GeneID と p 値の 2 つの列があり、B には GeneID の 1 つの列しかありません。B には約 100,000 の遺伝子があり、これらは A の遺伝子のサブセットです (ここでは約 700,000 の遺伝子)。

GeneListA
GeneID p.value
41931 0.0210
41931 0.0003
5310612 0.3161
5310612 0.7089
5310612 0.0021
98317 0.1139
98317 0.0009
215688 0.0031
215688 0.0008

GeneListB
遺伝子ID
41931
41931
215688
215688

目的の GeneListC
5310612 0.3161
5310612 0.7089
5310612 0.0021
98317 0.1139
98317 0.0009

B の遺伝子が A に表示されることはもう望んでいません。p 値を A に保持したまま、それらを取り除くにはどうすればよいですか? これまでに3つの異なる方法を試しました:

  1. p 値の列を削除したので、両方のリストに Entrez Gene ID しかありません。次に、次のコードを使用しました:new<-A[setdiff(rownames(A),rownames(B)),]が、予想とはまったく異なる遺伝子セットを取得しました。ABではなく、AとBの遺伝子がランダムに混ざったように見えた

  2. 私も試しました:new<-A[!apply(A,1,FUN=function(y){any(apply(B,1,FUN=function(x){all(x==y)}))}),]

  3. 最後に、EntrezGeneID でマージしようとしましたが、それもだめでした。

私はこれによって破壊されているので、助けていただければ幸いです。

4

1 に答える 1