Преобразовать числовой класс списка в структуру расстояния в 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
единицами являются виды (таксоны), но, кажется, вы хотите получить анализ для сообществ / участков / чего угодно. Это не будет возможно с этими инструментами.