pts中的错误[groups == i ,, drop = FALSE] :(下标)逻辑下标太长 - 与betadisper()

时间:2017-08-23 15:26:00

标签: r vegan

您好亲爱的互联网社区!

当我遇到一个非常新的问题时,我试图使用vegan {}的betadisper()函数。我得到的错误如下:

Error in pts[groups == i, , drop = FALSE] : 
          (subscript) logical subscript too long

所以,我想我会通过谷歌搜索来检查这个问题,而且我看到一些帖子涉及同一类问题。我发现我可以使用trace()和traceback()函数来查看问题是什么,所以,在发布结果之前,这里是对我想要实现的内容的描述。

我正在尝试使用betadisper()来观察植物物种丰度相对于不同环境变量的多变量分布。 数据由2432行组成,共898个物种和5个环境变量。

以下是我对数据的处理方法:

X_env <- as.matrix(Y[,c( 16:19)]) # subsetting the environmental variables from the core matrix
X_abondance <- Y[, 22:1010]  # subsetting the abundance data from the core matrix
X_abondance <- decostand(X_abondance, method = "hellinger")
dist_X_abon <- dist(X_abondance, method = "euclidean")
disper_bobb <- betadisper(dist_X_abon, bobb_env)

这是我收到错误消息的地方。 让我们看看trace()必须说什么:

4: ordimedian(vectors, group, choices = axes[pos])
3: spatialMed(vectors, group, pos)
2: betadisper(dist_X_abon, X_env)
1: trace(disper_X <- betadisper(dist_X_abon, X_env))

此时,我迷路了,我不知道该怎么办...... 这是我第一次遇到这个问题而且我不知道如何解决这个问题,如果有人有想法我会非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我发现为什么我无法继续使用betadisper功能。 我试图使用不同类别的变量,这是不可能的。 当我只使用一个具有不同级别的变量时,我可以使它完美地工作。