我正在嘗試做超過400個日期的費舍爾精確測試。費舍爾精確測試工作2x2的可能性。這個測試對許多用於分子標記和遺傳學研究。因此,如果我有很多日期,變得不可能使所有可能性成爲一對一的標記組合。 R中fisher.test使用R
分析代碼:
alelo1<-data[,1]
alelo2<-data[,2]
fisher.test(alelo1,alelo2)$p.valeu
我試着不要使用:
(for i in)
但我並沒有成功。我怎麼能自動使用R?
Tnks!
我正在嘗試做超過400個日期的費舍爾精確測試。費舍爾精確測試工作2x2的可能性。這個測試對許多用於分子標記和遺傳學研究。因此,如果我有很多日期,變得不可能使所有可能性成爲一對一的標記組合。 R中fisher.test使用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)和一段時間?或者用結果生成三角矩陣的東西。如:
我會給你一個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
}
}
`選擇(400,2)`:) – 2011-12-15 10:04:04
(1)的拼寫爲'p.value`,不`p.valeu`。 (2)即使在第二個片段中,你的語法也是不正確的。請參閱`?「以獲得正確的答案。 (3)如果沒有一些示例數據,我們不能爲你做很多事情。看看這裏的其他一些問題,看看是如何完成的。謝謝! – 2011-12-15 02:29:26