首页 > 解决方案 > 对 R 中的 vegan 包使用 dbrda 函数时出错

问题描述

我目前正在尝试使用 vegan 包运行 dbRDA。我用三个解释矩阵来解释一个响应距离矩阵:

full.rda <- dbrda(bsim ~ genmat + envmat + spamat)

第一个是距离矩阵,而后三个是矩阵(不是数据帧)。我检查了每个的 dimnames 属性,也没有缺失值,总的来说一切似乎都很好......

dim(bsim)

[1] 380 380

dim(envmat)

[1] 380 6

dim(spamat)

[1] 380 3

dim(genmat)

[1] 380 2

all(attr(genmat, 'dimnames')[[1]] == attr(bsim, 'dimnames')[[1]])

[1] 对

all(attr(spamat, 'dimnames')[[1]] == attr(bsim, 'dimnames')[[1]])

[1] 对

all(attr(envmat, 'dimnames')[[1]] == attr(bsim, 'dimnames')[[1]])

[1] 对

但由于某种原因,我收到错误消息:

full.rda <- dbrda(bsim ~ genmat + envmat + spamat)

dimnames(u) <- list(dnam[[1]], c(axnam, negnam)) 中的错误:“dimnames”[2] 的长度不等于数组范围

traceback()

3: ordConstrain(Y, X, Z)

2: ordConstrained(X, d$Y, d$Z, 方法 = "dbrda")

1: dbrda(bsim ~ genmat + envmat + spamat)

我见过人们在尝试进行 corrplot 并使用数据框而不是矩阵时遇到此错误,但这不是这里的问题..

有没有人可能有解决这个问题的建议或想法?

我正在使用 R 的 3.5.1 版和 vegan 包的 2.5-2 版。

十分感谢!

标签: rvegan

解决方案


推荐阅读