R 如何防止错误以完成循环?
我正在尝试拟合通过.csv文件收集的三个变量的最佳分布。我试图用r中提供的分布进行评估。 然后,我将选择最小的一个作为最佳拟合分布。但是,我无法完成循环,因为当分布无法适合数据时,可能会发生一些错误 比如,;贝塔分布: FitDisr(xx1[,k],发行版[i])中出错:“开始”必须是命名列表 那么如何跳过这个错误呢 以下是要上载的文件: 代码如下:R 如何防止错误以完成循环?,r,R,我正在尝试拟合通过.csv文件收集的三个变量的最佳分布。我试图用r中提供的分布进行评估。 然后,我将选择最小的一个作为最佳拟合分布。但是,我无法完成循环,因为当分布无法适合数据时,可能会发生一些错误 比如,;贝塔分布: FitDisr(xx1[,k],发行版[i])中出错:“开始”必须是命名列表 那么如何跳过这个错误呢 以下是要上载的文件: 代码如下: library(fitdistrplus) importeddata <- read.csv(file.choose(), sep
library(fitdistrplus)
importeddata <- read.csv(file.choose(), sep=";",na.strings = "", stringsAsFactors=FALSE, header = TRUE)
for(i in 1:tail(ncol(importeddata))){
importeddata[,i] <- gsub(",", ".", importeddata[ , i])}
xx1<- as.matrix(as.data.frame(lapply(importeddata, as.numeric)))
distributions <- c("beta", "cauchy", "chi-squared", "exponential", "f", "gamma", "geometric", "log-normal", "lognormal", "logistic", "negative binomial", "normal", "Poisson", "t", "weibull")
for(k in 1:ncol(xx1))
for(i in 1:length(distributions))
{
aa <- fitdistr(xx1[,k], distributions[i])$loglik
suppressMessages(aa)
print(aa)
}
库(FitDistripPlus)
importeddata如果发生错误时只想跳过一些代码,可以使用try()
函数。当发生错误时,函数中的所有内容都不会破坏代码
在您的示例中,仅替换为:
aa阅读文档。对于某些分布,必须提供数值优化的起始值。