W***Y 发帖数: 27 | 1 我想把一个6*4 的matrix 里的每一行的四个数,重新组成一个2*2 matrix , (就是
第一和第二个数作为新的2*2 matrix 里的第一行,第3和4 个数,做第二行,然后,把
每个2*2 matrix 用fisher.test, 算出P-value, 再把所有P-value 按大小排序。
我自己的 code 如下,但是,只计算最后一行的。 请教,问题在哪里?帮我修改一下
吧。
多谢了
rm(list=ls())
fly <- read.table( "fly-7.txt",header=T)
names(fly)
rownames(fly) <- paste( "Gene", 1:nrow(fly), sep="_" )
fly <- as.matrix( fly)
n=nrow(fly)
res=matrix(0,nrow=n, ncol=1,byrow="T")
i<-c(1:n)
for(i in 1:n){
x_i<-as.numeric(fly[i,])
(x_i_12=c(x_i[1],x_i[2]))
(y_i_34=c(x_i[3],x_i[4]))
xy_i=rbind(x_i_12,y_i_34)
}
xy_i=as.matrix(xy_i)
xy_i
fisher.test(xy_i)
p_values<-fisher.test(xy_i)$p.value
p_values | k*******a 发帖数: 772 | 2 这个一步就够了啊
apply(fly, 1, function(x) fisher.test(matrix(x, ncol=2, byrow=T))$p.value) | W***Y 发帖数: 27 | 3 太谢谢您了!
【在 k*******a 的大作中提到】 : 这个一步就够了啊 : apply(fly, 1, function(x) fisher.test(matrix(x, ncol=2, byrow=T))$p.value)
|
|