ошибка cca веганского пакета: сумма строк (X) должна быть ›0: отсутствует значение, где требуется ИСТИНА / ЛОЖЬ

Я пытаюсь провести анализ канонических соответствий для данных о составе рациона (prey.counts) по отношению к набору переменных окружающей среды (envvar). Сумма для каждой строки и каждого столбца больше 0, но я продолжаю получать это сообщение об ошибке:

diet <- cca(prey.counts, envvar$SL + envvar$Month + envvar$water.temp + 
            envvar$salinity + envvar$DO)

Error in if (any(rowSums(X) <= 0)) stop("All row sums must be >0 in the community data matrix") : 
  missing value where TRUE/FALSE needed

Я дважды и трижды проверил фрейм данных prey.counts на наличие NAs или пустых столбцов / строк, и ни один из них не равен нулю или не имеет отсутствующих значений. R, RStudio и все пакеты полностью обновлены. Любая помощь будет оценена по достоинству!

Мередит


person user3303937    schedule 12.02.2014    source источник
comment
Содержит ли ваш data.frame какие-либо НП?   -  person Marc in the box    schedule 13.02.2014
comment
Нет, изначально было много НА, которые я заменил нулями (фрейм данных включает количество жертв (столбцы) для каждого исследованного желудка (строки)), и я использовал функцию фильтрации в Excel, чтобы убедиться, что ни один из полей не все еще пусто и что ни одна из строк / столбцов не равна нулю   -  person user3303937    schedule 13.02.2014


Ответы (1)


Проблема в том, как вы вызываете функцию, вы, кажется, смешиваете интерфейсы по умолчанию и формулы (и злоупотребляете обозначением формулы, пока вы в ней).

Помогает ли это:

diet <- cca(prey.counts ~ SL + Month + water.temp + salinity + DO, data = envvar)

В качестве альтернативы, если названные переменные - единственные в envvar, вы можете выполнить любое из

diet <- cca(prey.counts ~ ., data = envvar)

or

diet <- cca(prey.counts, envvar)

причем последний использует менее гибкий, но простой default метод для cca().

person Gavin Simpson    schedule 12.02.2014
comment
Я удалил неиспользуемые переменные из envvar, попробовал каждое из ваших предложений и получил то же сообщение об ошибке, что и раньше. - person user3303937; 13.02.2014
comment
Хорошо, поэтому убедитесь, что веганский обновлен; выполните update.packages() и позвольте R обновиться до последних версий пакетов. Также выполните rowSums(prey.counts) и убедитесь, что действительно нет пропущенных значений. Помимо этого, this действительно работает, и мы используем его все время, поэтому в ваших данных должно быть что-то, что вызывает проблему, и, не увидев этого, будет сложно диагностировать. Можете ли вы отредактировать в своем вопросе вывод str(prey.counts), а также показать мне вызов cca(), который вы сейчас используете. Сказать мне, что вы что-то сделали, это не то же самое, что вставить в точности используемый код. - person Gavin Simpson; 13.02.2014
comment
вывод rowSums (prey.counts) показал около 8 полностью пустых строк внизу, которые были сохранены как NA. Я повторно открыл prey.counts в Excel и пересохранил его, и теперь CCA работает нормально! Спасибо большое за вашу помощь! - person user3303937; 13.02.2014
comment
@ user3303937, возможно, вам стоит отказаться от Excel и научиться выполнять эти операции в R. Это избавит вас от многих проблем в долгосрочной перспективе ... - person Gavin Simpson; 14.02.2014