Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何防止错误以完成循环?_R - Fatal编程技术网

R 如何防止错误以完成循环?

R 如何防止错误以完成循环?,r,R,我正在尝试拟合通过.csv文件收集的三个变量的最佳分布。我试图用r中提供的分布进行评估。 然后,我将选择最小的一个作为最佳拟合分布。但是,我无法完成循环,因为当分布无法适合数据时,可能会发生一些错误 比如,;贝塔分布: FitDisr(xx1[,k],发行版[i])中出错:“开始”必须是命名列表 那么如何跳过这个错误呢 以下是要上载的文件: 代码如下: library(fitdistrplus) importeddata <- read.csv(file.choose(), sep

我正在尝试拟合通过.csv文件收集的三个变量的最佳分布。我试图用r中提供的分布进行评估。 然后,我将选择最小的一个作为最佳拟合分布。但是,我无法完成循环,因为当分布无法适合数据时,可能会发生一些错误

比如,;贝塔分布:

FitDisr(xx1[,k],发行版[i])中出错:“开始”必须是命名列表 那么如何跳过这个错误呢

以下是要上载的文件:

代码如下:

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阅读文档。对于某些分布,必须提供数值优化的起始值。