Функция Ordistep от веганской ошибки на больших RDA

Я запускал функцию ordistep по результатам RDA по матрице обилия видов и большому количеству PCNM.

вот код, который я использовал. Chr — это числовой вектор от 1:23 для циклического прохождения различных экспериментов, а filter.na удаляет некоторые графики, для которых нам не хватает данных.

  R <- rda(Gbos[[Chr]][filter.na,]~., as.data.frame(Lpcnm[[Chr]]$vectors[filter.na]))
  step.forward[[i]] <- ordistep(R, scope = formula(R), test="p")

Моя проблема в том, что у меня в формуле от 80 до 120 PCNM, и мне нужно найти более минимальную модель. Однако всякий раз, когда у меня есть более 57 PCNM, на пару шагов я получаю сообщение об ошибке:

Ошибка в условии (PCNM1 + PCNM2 + PCNM3 + PCNM4 + PCNM5 + PCNM6 + PCNM7 +: не удалось найти функцию «Условие» Вызовы: шаг ... ordiParseFormula -> model.frame -> model.frame.default -> eval -> eval Выполнение остановлено

я пропустил что-то очевидное? эта функция работает нормально, если у меня меньше 57 PCNM.


person Brent    schedule 13.03.2018    source источник
comment
Я не могу воспроизвести это, но получаю ошибку Error in as.data.frame(Lpcnm[[Chr]]$vectors[filter.na]) : object 'Lpcnm' not found   -  person Jari Oksanen    schedule 13.03.2018
comment
Моя личная проблема в том, что я не могу воспроизвести это. Я просмотрел это пару дней назад и понял, что нужно изменить в vegan. Для этого мне понадобился тестовый пример, чтобы убедиться, что запланированное исправление работает. Сегодня я пытался вызвать ошибку различными уловками, но все тщетно: vegan просто работает и не выдает ошибки. Это также означает, что я не начну внедрять запланированное исправление, потому что не знаю, что исправлять, и не могу проверить, работает ли исправление. Для начала было бы полезно узнать, какими версиями R и vegan вы пользуетесь.   -  person Jari Oksanen    schedule 17.03.2018
comment
Некоторые дополнительные комментарии: команда ordistep() в вашем примере вообще не будет работать в современном вегане (или, я думаю, в любом вегане): ваша начальная модель (R) равно scope и деваться будет некуда. Дальнейший аргумент test = "p" не допускается в современном вегане, потому что ordistep всегда использует тесты перестановки, а повторное использование приводит к ошибке.   -  person Jari Oksanen    schedule 17.03.2018


Ответы (1)


Это действительно похоже на ошибку в vegan. Теперь это исправлено в github. Тем временем вы можете обойти проблему выдачи

Condition <- I

до ordistep. (Это скромный клуге: не пытайтесь понять, зачем это делать, но, похоже, это работает.)

person Jari Oksanen    schedule 26.03.2018