1

Rを使用して、40000行と4列のコンポストである区切られたテーブルからの入力を使用して多数を実行しています。iam t test ,p value を実装しようとしていますが、(データは本質的に一定である) というエラーがあります。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

適切な答えを計算できない状況をソフトウェアが認識してくれるのは素晴らしいことです。その時点で、2 つの可能なアクションがあります。(1) 有益なエラーで停止し、(2) サイレントに NA を返します。

これを反復ループで実行している場合は、2 番目の出力が必要です。そのための小さな関数は次のとおりです。

     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 に答える