ANOSIM: ошибка в sort.int (x, na.last = na.last, уменьшение = уменьшение, ...) - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь выполнить Аносим {веган} на моих экологических данных, и я получаю одно и то же сообщение об ошибке. Я не думаю, что это дублирующий вопрос из другого, уже опубликованного, и хотел бы полностью показать, что происходит.

Я получил мой числовой фрейм данных ("sps"), состоящий из 17 строк (сайтов) и 313 столбцов (видов), и второй фрейм данных ("env.data"), содержащий столбец с 17 факторами. Поэтому я хотел бы проверить, есть ли существенные различия между моими 17 группами.

Вот пример моих данных:

> sps[,2:5]
                A. faranauti A. tecta A. lyra A. arbuscula 
Sargasso Sea              0         0       2            0
Equatorial Brazil         0         0       0            0
Canarias Sea              0         0       0            0
Corner Seamounts          0         0       0            2
Gulf of Mexico            0         0       0            0
Labrador Sea              0         0       0            0
Equatorial Africa         0         0       0            0
Tropic Seamount           0         0       0          107
NewEngland Seamount Chain 0         0       0            0
Norwegian Basin           0         0       0            0
Eastern North Atlantic    0         0       3            0
Logachev and BritishIsles 0         0       0            4
Reykjanes Ridge           0         0       0            0
MAR North                 0         0       0           14
Flemish Cap               0         0       0          217
MAR South                 1         1       0            0
Azores Seamount Chain     0         0       0           12

> class(sps)
[1] "data.frame"

> head(env.data)
  idcell          geo_area
1      1      Sargasso Sea
2      2 Equatorial Brazil
3      3      Canarias Sea
4      4  Corner Seamounts
5      5    Gulf of Mexico
6      6      Labrador Sea

> str(env.data)
'data.frame':   17 obs. of  2 variables:
$ idcell  : Factor w/ 17 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
$ geo_area: Factor w/ 17 levels "Canarias Sea",..: 15 5 1 2 7 8 4 17 12 13..  

Следуя {вегану}, я сначала вычислил матрицу различий с Соренсеном в качестве метода расстояния. Затем я использую эту матрицу различий в качестве ввода для anosim:

dist.sorensen <- vegdist(sps, method= "bray", binary = TRUE, na.rm= TRUE, 
diag = TRUE)
sorensen.anosim <- anosim(dat=dist.sorensen, env.data$geo_area, permutations 
= 999)
> summary(sorensen.anosim )
Call:
anosim(dat = dist.sorensen, grouping = env.data$geo_area, permutations = 
999) 
Dissimilarity: binary bray 
ANOSIM statistic R:  
Significance: 0.001 
Permutation: free
Number of permutations: 999
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 
'x' must be atomic

Я также пробовал anosim с необработанными данными о видах, и я получаю ту же ошибку:

raw.anosim <- anosim(sps, env.data$geo_area, permutations = 999, distance = 
"bray")

Есть идеи? Мой "sps" dataframe (x) является числовым. В моем наборе данных (групп) env.data есть столбец с 17 уровнями. Я не вижу, откуда возникла ошибка, если она не присуща моим данным. Многие из 313 видов, перечисленных в моем исходном кадре данных, были зарегистрированы только один раз на моих 17 участках (очень вероятно, из-за смещения выборки). Тем не менее, я получаю кластеры после выполнения "vegdist (индекс Соренсена)" и "hclust".

...