0

fitdistrplusパッケージの関数fitdistを使用しています。一部のディストリビューションでは、エラーが発生します。プログラムを停止せず、変数に値を割り当てて続行したいだけでもかまいません。

ヘルプに基づくと、コードは次のようになります。

i=1
for (data in results)
  for (dist in distributions)
    resultst[[i]] <- tryCatch(
      fitdist( data, dist,method="mle",
           start=list(mean=mapply("[[", results[i], 1),
                      sd=mapply("[[", results[i], 2)),
           fix.arg=list(a=minv,b=maxv)),
           error = function(e) results[[i]])
       i=i+1

しかし、このエラーが発生します:

Error in resultst[[i]] <- tryCatch(fitdist(data, dist, method = "mle",  :
more elements supplied than there are to replace

解決:

i=1
for (data in results)
  for (dist in distributions)
  params <- tryCatch(
  fitdist( data, dist,method="mle",
           start=list(mapply("[[", results[i], 1),
                      mapply("[[", results[i], 2)),
           fix.arg=list(a=minv,b=maxv)),
           error = function(e) {
             fitdist( data, substring(dist,2),method="mle",
                      start=list(mapply("[[", results[i], 1),
                                 mapply("[[", results[i], 2)))
           })
resultst[i]<-params
resultst2[[i]]<-params
i=i+1

EDITはi=0をi=1に変更しました(私の間違いです!)インクルードパラメータ

4

1 に答える 1

3

Dasonのコメントとして、tryCatch役立つはずです:

List2[[i]] <- tryCatch(
                    fitdist( data, dist,method="mle",
                          start=list(mean=x,
                                     sd=y,
                          fix.arg=list(a=minv,b=maxv)),
                    error = function(e) List1[[i]] 
              )
于 2012-08-25T23:37:17.933 に答える