行之间的所有成对比较以及列之间的功能

时间:2014-09-19 21:30:22

标签: r

我有一个大的(20 000行,200列)矩阵,格式如下:

mydata<-matrix(rexp(200, rate=.1), ncol=8,nrow=4)

我希望首先从所有其他行中减去每一行,然后在每个新行上执行t.test,返回p.value,比较列1:4和列5:8。

这将返回类似于:

的内容
Row1 Row2 0.03
Row1 Row3 0.66
Row1 Row4 0.001

我已经编写了一个样本,通过for循环实现了这一点,以便更清楚地理解(尽管输出略有不同),但是显然没有足够的效率来处理这么大的数据集。

sigdiff<-matrix(, nrow = nrow(mydata), ncol = nrow(mydata))
for (i in 1:(nrow(mydata)-1)){
for (k in (i+1):(nrow(mydata)-1)){
diff<-mydata[i,]-mydata[k,]
sigdiff[i,k]<-t.test(diff[1:4],diff[5:8])$p.value
}
}
sigdiff[is.na(sigdiff)]=1

感谢您在优化此项目时提供的帮助!

0 个答案:

没有答案