2016-12-07 9 views
-3

行列の各列からTRUE値を持つ遺伝子を取り出し、それぞれの対比(列)のためのリストを作成する必要があります。それをどうやって行うのですか?ここで行列からTRUE値を引き出す方法

gcQVals=qvalue(eBgcData$p.value) 
print(sum(gcQVals$qvalues<=0.01)) 
gcQs2=gcQVals$qvalues<=0.01 
print(gcQs2[1:5,1:6]) 

が出力されます。

[1] 17969 
       Contrasts 
      KOInfvsKOUnInf WTInfvsWTUnInf KOInfvsWTInf KOInfvsWTUnInf 
    1415670_at   FALSE   FALSE  FALSE   FALSE 
    1415671_at   FALSE   FALSE  FALSE   FALSE 
    1415672_at    TRUE   FALSE  FALSE   TRUE 
    1415673_at   FALSE   FALSE  FALSE   FALSE 
    1415674_a_at   FALSE   FALSE  FALSE   FALSE 
      Contrasts 
      KOUnInfvsWTInf KOUnInfvsWTUnInf 
    1415670_at   FALSE   FALSE 
    1415671_at   FALSE   FALSE 
    1415672_at   FALSE   FALSE 
    1415673_at   FALSE   FALSE 
    1415674_a_at   FALSE   FALSE 
+0

あなたは、印刷の出力を見ると、いくつかの行の中でTRUEになります。私は各列の行を引き出したい。 – Alysha

+0

あなたの質問に答えられるようにするには、 'dput(gcQs2 [1:10,1:6]) 'とタイプしてあなたのデータのサンプルを入れて、コンソール出力をコピーしてあなたの質問に貼り付けてください。 'gcQs2 [1:10,1:6]'の出力を含めて、あなたが望むものと一致するかどうかを確認してください。 'R'で再現可能なサンプルを作る方法の詳細については(あなたの質問に答える可能性を高めてください)[この記事を表示してください](http://stackoverflow.com/questions/5963269/how-to-make- a-great-r-reproducible-example)を使用します。 – Barker

+0

行全体または列全体を削除しますか?代わりに何を入れたいのですか? – clemlaflemme

答えて

0

私はあなたが言ってこのMWEを建設されたかを把握することを試みた:

# build the example 
a <- matrix(runif(9), 3, 3)>0.5 
dimnames(a) <- list(letters[1:3], LETTERS[1:3]) 

# solution to your supposed problem 
lapply(colnames(a), function(name) rownames(a)[a[,name]]) 

> a 
     A  B  C 
a FALSE TRUE FALSE 
b FALSE FALSE TRUE 
c FALSE FALSE FALSE 

res <- lapply(colnames(a), function(name) rownames(a)[a[,name]]) 
names(res) <- colnames(a) 
> res 
$A 
character(0) 

$B 
[1] "a" 

$C 
[1] "b" 
関連する問題