0

問題は、データに 5 以上 80 未満の数値がない場合や、観測値が 1 つしかないために t.test を実行できない場合があることです。ループ内で if ステートメントを使用して、5 から 80 の間の値を取得しない場合、または観測値が 1 つしかない場合NAに、t.test を使用して実行しないようにするにはどうすればよいですか?

4

2 に答える 2

2

Dウィンは正しいです。R では型が重要であり、データフレームで期待どおりに長さが常に機能するとは限りません。「長さ」を使用nrowまたは取得できるはずです。NROW他のすべてが失敗した場合は、使用できますtryが、それは常に私を汚く感じさせます.

ただし、確実に知るために、マシューから要求された例を提供してください。

于 2013-03-29T18:38:14.387 に答える
1

このような「try」ブロックをラップリー内に配置できます。結果を NA に初期化すると、エラーが発生しない場合にのみ t.test の結果が割り当てられます。

data2 <- lapply(1:length(m), function(i) {
         res = NA
         try({ 
             #you can put your other constraints here
             if(length(m[[i]][[5]]) > 1) {
                 res = t.test(data1$Value,m[[i]][[5]])
             }
         }, silent=T)
         res
 })
于 2013-03-29T16:35:35.483 に答える