【发布时间】:2013-08-07 04:15:53
【问题描述】:
我在正常的 t 检验中遇到错误:
data <- read.table("/Users/vdas/Documents/RNA-Seq_Smaples_Udine_08032013/GBM_29052013/UD_RP_25072013/filteredFPKM_matrix.txt",sep="",header=TRUE,stringsAsFactors=FALSE)
PGT <- cbind(data[,2],data[,7],data[,24])
PDGT <- cbind(data[,6],data[,8])
pval2 <- NULL
for(i in 1:length(PGT[,1])){
pval2 <- c(pval2,t.test(as.numeric(PDGT[i,]),as.numeric(PGT[i,]))$p.value)
print(i)
}
错误:
Error in t.test.default(as.numeric(PDGT[i, ]), as.numeric(PGT[i, ])) :
not enough 'x' observations
我无法理解向量出了什么问题。你能告诉我吗?我一直无法弄清楚。
【问题讨论】:
-
向我们展示您的数据的样子。使用
str和summary。如果您通过一个简单的示例使您的错误可重现,那就太好了。 -
NAs 与否(请参阅下面的 cmets),如果我的代码正确,您似乎正在对长度为 2(行在 PDGT 中)针对长度为 3 的 'y 向量(PGT 中的行)。相当小的样本。如果我错了,请纠正我。
-
是的,这是真的,它是 3 对 2,但是是的,在我对某些行运行 t.test 之后,我有很多值 NaN,如果我必须删除低丰度表达式值那么矩阵大小会减小..
-
一个小注解:没有必要将您的数据框一分为二并遍历行。您可以对原始数据逐行应用您的函数:
pvals <- apply(X = data, MARGIN = 1, function(dd) t.test(x = dd[c(6, 8)], y = dd[c(2, 7, 24)])$p.value)
标签: r bioinformatics hypothesis-test