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