我正在尝试对我的生态数据执行Anosim {vegan},并且不断收到相同的错误消息。我认为这不是已经发布的另一个问题的重复问题,而是想充分展示正在发生的事情。
我得到了由17行(站点)和313列(物种)组成的数字数据框(“ sps”),以及第二个数据框(“ 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..
在{vegan}之后,我首先以Sorensen作为距离方法计算了一个相异矩阵。然后,我将此差异矩阵用作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”数据框(x)是数字。我的“ env.data”数据集(分组)具有一个包含17个级别的因子列。除非错误是我的数据固有的,否则我看不到错误的来源。我原始数据框中列出的313个物种中的许多在我的17个站点中仅记录了一次(很可能是由于采样偏差)。但是,在执行“ vegdist(Sorensen索引)”和“ hclust”之后,我得到了聚类。