Преобразовать числовой класс списка в структуру расстояния в R

У меня есть список, который выглядит так, это мера дисперсии для каждого образца.

         1          2          3          4          5 
0.11829384 0.24987017 0.08082147 0.13355495 0.12933790 

Для дальнейшего анализа мне нужна структура расстояния, пакет -vegan- нужен как объект dist.

Я нашел некоторые решения, которые применяются к матрицам> dist, но как я могу изменить эти текущие данные в объект dist?

Я использую пакет FD, в руководстве, которое я нашел,

Тем не менее, одно потенциальное преимущество FDis по сравнению с Q Рао состоит в том, что в невзвешенном случае (то есть с данными об отсутствии присутствия) он открывает возможности для формальных статистических тестов на различия в FD между двумя или более сообществами с помощью основанного на расстоянии теста на однородность многомерные дисперсии (Anderson 2006); см. betadisper для более подробной информации

Я хотел использовать функцию vegan betadisper, чтобы проверить, есть ли различия между различными регионами (я предоставил это, используя элемент "region" со столбцом "region")

functional <- FD(trait, comun)
mod <- betadisper(functional$FDis, region$region)

использование gowdis или fdisp из FD тоже не сработало.

distancias <-  gowdis(rasgo)
mod <- betadisper(distancias, region$region)
dispersion <- fdisp(distancias, presence)
mod <- betadisper(dispersion, region$region)

Я пробовал это, но мне нужен объект списка. Я думал, что смогу передать эти результаты в betadisper.

1 ответ

Решение

Ты не сможешь это сделать: FD::fdisp() не возвращает различий. Возвращает список из трех элементов: дисперсии FDis для каждой единицы выборки (SU) и результаты собственного разложения входных различий (eig для собственных значений, vectors для ортонормированных собственных векторов). FDis Значения суммируются для каждого исходного SU, но нет никакой информации о различиях между SU. Собственное разложение может быть использовано для восстановления исходных входных различий (ваш distancias от FD::gowdis()), но вы можете напрямую использовать входные различия. функция FD::gowdis() возвращает регулярный "dist" структура, которую вы можете напрямую использовать в vegan::betadisper() если это дает вам значимый анализ. Для этого ваш grouping переменная должна основываться на тех же единицах, что и ваши distancias, В типичном применении fdispединицами являются виды (таксоны), но, кажется, вы хотите получить анализ для сообществ / участков / чего угодно. Это не будет возможно с этими инструментами.

Другие вопросы по тегам