您好亲爱的互联网社区!
当我遇到一个非常新的问题时,我试图使用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))
此时,我迷路了,我不知道该怎么办...... 这是我第一次遇到这个问题而且我不知道如何解决这个问题,如果有人有想法我会非常感谢你的帮助!
答案 0 :(得分:1)
我发现为什么我无法继续使用betadisper功能。 我试图使用不同类别的变量,这是不可能的。 当我只使用一个具有不同级别的变量时,我可以使它完美地工作。