我正在使用 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
编辑将 i=0 更改为 i=1 (我的错误!)包括参数