R: [Пакет Indicspecies] функция multipatt: извлечение значений из сводки.многоваттность

#r

#r

Вопрос:

Я работаю с пакетом ‘indicspecies’ — функция multipatt и не могу извлечь итоговые значения пакета. К сожалению, я не могу распечатать всю сводку и остаюсь с беспристрастной информацией для моей модели. Причина в огромном объеме данных, которые необходимо распечатать из сводки (300 000 различных видов, 3 группы, 6 сопоставимых комбинаций).

Это то, что происходит при сохранении сводки (включая предварительный код).:

 x <- multipatt(data, ...) 

sumx <-summary(x)

sumx 
  

NULL

 str(sumx) 
  

NULL

Таким образом, сводка не работает точно так же, как общая сводка. Похоже, что функция основана на более старой функции indval из пакета ‘labdsv’ (которая упоминается в документации). Я нашел архивную ветку, где обсуждается аналогичная проблема: http://r.789695.n4.nabble.com/extract-values-from-summary-of-function-indval-of-the-package-labdsv-td4637466.html

но, похоже, это не решено (и это не совсем та же функция, скорее базовая функция indval).

Мне было интересно, есть ли у кого-нибудь опыт работы с пакетом indicspecies и знает ли он способ извлечь информацию из сводки.

Можно извлечь значение и другую информацию из других сохраненных данных модели, но было бы неплохо просто получить быстрый полный обзор из данных.

ps. Я пытался

 options(max.print=1000000)
  

но это не решило проблему для меня.

Ответ №1:

Я использую для захвата summary выходных данных для multipatt объекта, но больше не делаю, потому что сообщаемые значения p не исправлены для многократного тестирования. Чтобы ответить на вопрос OP, вы можете получить итоговый результат с помощью capture.output

пример. dat.multipatt.summary<-capture.output(summary(dat.multipatt, indvalcomp=TRUE))

Опять же, я не рекомендую это. Очень важно исправить p-значения для многократного тестирования, поэтому summary вывод фактически бесполезен. Для ясности ?multipatt говорится:

«подпишите таблицу данных результатами наилучшего соответствия шаблону, значением ассоциации и степенью статистической значимости ассоциации (т. е. p-значениями из теста перестановки). Обратите внимание, что p-значения не корректируются при многократном тестировании

Я только что опубликовал ответ о том, как исправить p-значения здесь https://stats.stackexchange.com/questions/370724/indiscpecies-multipatt-and-overcoming-multi-comparrisons/401277#401277

Комментарии:

1. Хотя верно, что значения p не корректируются при многократном тестировании, возникает вопрос, следует ли исправлять значения p при многократном тестировании. Хотя большинство людей автоматически ответили бы «да», это обсуждается в статье, прилагаемой к пакету:

2. Они приводят аргумент, что если вас интересует только сообщение о том, что данный вид является индикатором, то коррекция для p-значений не требуется. Смотрите Carecas 2010 «Улучшение анализа видов индикаторов путем объединения групп сайтов»

3. @GeertHensgens Верно, вы указали, что вас интересует «значение извлечения», и в этом случае было бы уместно исправить p-значения.

4. да, это верно, однако мне это было нужно только для того, чтобы выбрать вид индикатора из данных модели. В любом случае, спасибо, я знаю, что это обсуждение на самом деле немного переросло в статистику, но я надеюсь, что все в порядке.

Ответ №2:

У меня нет никакого опыта работы с этим пакетом, и поскольку вы не предоставили данные, их трудно воспроизвести. Но поскольку summary возвращает NULL, вы уверены, что ваш x вычислен правильно? Проверьте object.size или class или что-то еще из x , чтобы увидеть, действительно ли в нем есть какой-либо контент. Также вместо того, чтобы обращаться ко всему содержимому summary(x) вместе, вы можете использовать @ для доступа к его слотам (аналогично $ в dataframe).

Если вам нужна дополнительная помощь, было бы лучше предоставить хотя бы небольшое подмножество или некоторые другие образцы данных, чтобы сообщество могло с ними работать.

Комментарии:

1. Привет, спасибо за ответ. Да, всегда лучше ввести какие-то данные, но это очень большие данные, и я не совсем уверен, что это сильно поможет — поскольку проблема находится в оригинальном пакете labdsv. На самом деле я думаю, что на самом деле решения нет, поскольку в старом потоке уже (если я правильно его интерпретирую) упоминалось, что функция summary присваивает summary неправильный класс данных, что делает извлечение невозможным. В любом случае, я подумал, что, возможно, у кого-то была такая же проблема с тем же пакетом, и он нашел способ ее обойти.

2. Если вы считаете, что это проблема с функциональностью самого пакета, попробуйте открыть проблему в github под этим. Вы тоже можете сослаться на эту страницу. Может помочь и другим в будущем.

3. Хорошая идея, хотя я не очень знаком с GitHub, но я мог бы сделать это в будущем. Спасибо!