#r #dataframe
#r #фрейм данных
Вопрос:
Я пытаюсь сравнить две модели, DIC(Deviance information criterion)
используя цикл for, но он возвращает
Аргумент ошибки имеет нулевую длину
в строке else if. ниже приведен код.
Data <- read.delim("A.txt")
a = Data[, 16]
if (isTRUE(MannKendall(a)[["p.value"]] > 0.05 amp;amp;
Box.test(a, lag = 8, type = "Ljung-Box") [["p.value"]] > 0.05) amp;amp;
pettitt.test(a)
[["p.value"]] > 0.05 |
kpss.test(log(a), null = "Trend")[["p.value"]] > 0.05) {
fit1 <-
fevd(a, Data, method = "Bayesian", units = "mm")
print(return.level(fit1, return.period = c(25, 50, 100)))
rp = c(25, 50, 100)
print(ci(fit1, return.period = c(25, 50, 100)))
} else if (fevd(a,
Data,
method = "Bayesian",
location.fun = ~ ti,
units = "mm")[["DIC"]] < fevd(
a,
Data,
method = "Bayesian",
location.fun = ~ ti,
scale.fun = ~ ti,
use.phi = TRUE,
na.action = na.fail,
units = "mm"
)[["DIC"]]) {
fit2 <-
fevd(
a,
Data,
method = "Bayesian",
location.fun = ~ ti,
units = "mm"
)
print(return.level(fit2, return.period = c(25)))
print(return.level(fit2, return.period = c(50)))
print(return.level(fit2, return.period = c(100))):rp = c(25, 50, 100, 150)
print(ci(fit2, return.period = c(25)))
} else {
fit3 <-
fevd(
a,
Data,
method = "Bayesian",
location.fun = ~ ti,
scale.fun = ~ ti,
use.phi = TRUE,
na.action = na.fail,
units = "mm"
)
print(return.level(fit3, return.period = c(25)))
print(return.level(fit3, return.period = c(50)))
print(return.level(fit3, return.period = c(100))):rp = c(25, 50, 100)
print(ci(fit3, return.period = c(25)))
}
Комментарии:
1. fevd(a, Data, метод = «байесовский», location.fun = ~ti, единицы измерения = «мм»)[[«DIC»]] < fevd(a, Data, метод = «байесовский», location.fun = ~ti, scale.fun = ~ti, использовать.phi =TRUE,na.action = na.fail, единицы измерения = «мм»)[[«DIC»]] возвращает нулевую ошибку длины аргумента
2. Пожалуйста, уделите немного времени форматированию и прочтите «справку» по написанию вопросов, прежде чем отправлять вопрос. Использование
ctrl a
followed byctrl shift a
в Rstudio автоматически отформатирует ваш код во что-то, что обычно более читаемо. Я сделал это на данный момент и немного сократил ваш текст. Ваша ссылка также не работает, поскольку файл не доступен никому, у кого есть ссылка. Я не знаю содержимого файла, но, как правило, не рекомендуется ссылаться на содержимое, поскольку ссылка может «сломаться» позже, что затруднит понимание вопроса будущими читателями. Вместо этого вставьте содержимое в свой пост.