の使用に関する知識が不十分ですtryCatch()
が、進行中の議論で適切な解決策を見つけるのが難しいことがわかりました。
オブジェクトを返す自己プログラム関数があります。これは実際にはリスト オブジェクトですが、簡単にするためにスカラーであると仮定します。for()
この関数をブートストラップするためにループを使用しています。私のループは次の形式です。
boot<-1000
for(i in 1:boot){
bootstrap_data<-data[sample(nrow(data),nrow(data),replace=T),]
out[i]<-myfunction(bootstrap_data,X,...)
}
myfunction()
lm()
は、データのサブセットにモデルを当てはめ、別のサブセットから新しいデータを予測するために使用するため、エラー メッセージを返すことがあります。次に、特定の要因について、たまたま適合に使用されたデータに表示されないレベルが発生する可能性がありますが、予測サブセットには表示されます。これはめったに発生しませんが (たとえば、約 15,000 回の反復ごとに)、発生します (何度もブートストラップmyfunction()
する必要があります)。
tryCatch()
または同様の関数を使用して、ブートストラップ ループをキャッチしたいと考えています。tryCatch()
さらに、ループ全体で関数をキャッチする必要があった頻度をカウントするインデックスを定義したいと思います。boot
最後に、エラーが発生した回数に関係なく一定数にしたいと思います。
R は次のメッセージを返します。
Error in model.frame.default(Terms,newdata,na.action=na.action,
xlev=object$xlevels) : factor X has new levels 2
X
のユーザー指定の予測子ですlm()
。2 が何を表しているのかわかりませんが、新しいレベル (?) の数だと思います。