簡體   English   中英

fisher.test使用R

[英]fisher.test using R

我正在嘗試進行超過400個日期的Fisher精確測試。 Fisher精確測試有2x2的可能性。 該測試適用於許多分子標記和遺傳學研究。 因此,如果我有很多約會,就不可能將所有可能性一對一地組合在一起。

R中的分析代碼:

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

我嘗試使用以下方法:

(for i in)

但是我沒有成功。 我如何使用R自動執行此操作?

Tnks!

從這個問題很難說出您想要什么,但是如果我能夠解密某些內容,我想您想從2X400矩陣的列中創建2X2矩陣組合。

因此,您將擁有79800種組合? 我認為。

choose(400,2) = 79800

我猜想是fisher.test i,j與j,i相同,並且i = j沒有多大意義,所以

我將從做一個函數開始:

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)
}

然后嘗試使用for(1:400中的i)循環並持續一段時間? 或使結果成為三角形矩陣的東西。 如:

我將為您提供一個包含10列向量的示例。

同樣的東西應該可以工作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
}
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM