1

我正在使用 R 使用来自分隔表的输入来运行大量数据,该表是 40000 行和 4 列的堆肥。我试图实现 t 测试,p 值,但我有错误(数据基本上是恒定的),我使用了 for 循环并适用于这两种情况我有同样的问题,代码是:

NormData3= NormData1[1:40000,1:5]
for(i in 1:nrow(NormData3)) {
g1=NormData3[i,2:3] 
g2=NormData3[i,4:5] 
p[i]=t.test(g1,g2,var.equal=TRUE)$p.value
 }

不知道是什么问题??

4

1 回答 1

3

很高兴该软件能够识别无法计算出合理答案的情况。此时,有两种可能的操作:(1) 因信息错误而停止,(2) 静默返回 NA。

如果您在迭代循环中运行它,则需要第二个输出。这是一个小功能:

     my.t.test.p.value <- function(...) {
    obj<-try(t.test(...), silent=TRUE)
    if (is(obj, "try-error")) return(NA) else return(obj$p.value)
}

在您的代码中使用此函数而不是 t.test。这不会干扰您的循环并允许它继续。

于 2014-04-16T06:01:23.403 回答