【发布时间】:2015-02-17 20:19:15
【问题描述】:
我在解决一个错误时遇到了问题。这是我尝试执行的行:
library(vegan)
adonis(data = dset, adiv ~ N+P+K)
它返回一个失败消息:
Error in rowSums(x, na.rm = TRUE) :
'x' must be an array of at least two dimensions
数据集似乎一切正常,因为 aov(data = dset, adiv ~ N+P+K) 工作得很好。我知道当某些函数丢弃数据框尺寸时会出现此类错误,但我不知道在这种情况下如何修复它。
编辑。添加一段我的数据集。
treatment N P K M adiv
N 1 0 0 0 0.2059
P 0 1 0 0 0.20856
K 0 0 1 0 0.22935
O 0 0 0 0 0.10729
NP 1 1 0 0 0.30674
NK 1 0 1 0 0.30509
PK 0 1 1 0 0.30606
NPK+ 1 1 1 1 0.50389
NPK 1 1 1 0 0.40731
manure 0 0 0 1 0.2085
在我尝试执行 adonis 之前,我将处理值转换为以下因素:
dataset$N <- as.factor(dat$N)
dataset$P <- as.factor(dat$P)
dataset$K <- as.factor(dat$K)
dataset$M <- as.factor(dat$M)
然后我只是尝试执行该函数并得到错误。 正如我已经提到的,当我尝试 aov() 或 lm() 时,一切正常。
【问题讨论】:
-
你能做一个重现错误的小例子吗?
-
@RomanLuštrik 我添加了一些附加信息。