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