2011-12-15 6 views
0

フィッシャー・エグゼクティブ・テストを400日以上試行しています。 Fisher Exact Testは2x2の可能性を持っています。この試験は、分子マーカーおよび遺伝学的研究において多く使用されている。 私は多くの日付にする必要がある場合、すべての可能性をマーカーの1対1の組み合わせにすることは不可能になった。fisher.test using R

Rで分析コード:

alelo1<-data[,1] 
alelo2<-data[,2] 
fisher.test(alelo1,alelo2)$p.valeu 

私が使用して行うみました:

(for i in) 

しかし、私は成功していませんでした。どのように私はRを使って自動的にそれを行うことができますか?

Tnks!

+2

のために働く必要があります。 (2)その2番目のスニペットでも、構文が正しくありません。それを正しくするには ''? ''を参照してください。 (3)いくつかの例のデータなしでは、あなたのために多くを行うことはできません。ここで他のいくつかの質問を見て、それがどのように行われたかを見てください。ありがとう! –

答えて

1

質問から少し難しいですが、何かを解読できたら、2X400行列の列から2X2行列の組み合わせを作成したいと思っています。

79800通りの組み合わせがありますか?おもう。

私はi、jはJと同じであり、私と私はjはあまり意味がありません=ということなので、

私は、関数を実行することによって開始するfisher.testのために推測

choose(400,2) = 79800 

alelos = function(i,j){ 
alleys= matrix(c(df[,i],df[,j]),nrow=2,byrow=F) 
#df is the 2X400 matrix, called data in the question 
return(fisher.test(alleys)$p.value) 
} 

次に、(i:1:400の)iとwhileのループを試してみましょうか?結果を三角行列にするものなどがあります。例:

10列のベクトルを使用した例を示します。

同じことが(1)スペルは `p.value`、ない` p.valeu`ある400

set.seed(4) 
df= matrix(c(sample(1:100,10,replace=T),sample(1:100,10,replace=T)),nrow=2) 


resultmatrix = matrix(0,10,10) 
#or 10x9 if you prefer 

for(i in 10:1){ 
    j=1 
while(i > j){ 
    resultmatrix[i,j]= alelos(i,j) 

j=j+1 
} 
} 
+0

'choose(400、2)' :) –

+0

txs @RomanLuštrik。ちょうどそれを編集しました。 – aatrujillob