感谢您查看这个问题! 我在R中用纯素包进行冗余分析,使用两个数据集(一个是微生物种,另一个是环境变量,例如pH DOC ......)。 代码显示:
mod<- rda(species~.,data=environment)
summary(mod)
Call:
rda(formula = species ~ Treatment + SR + DOC + NH4 + NO3 + AG + BG + CB +
XYL + LAP + NAG + PHOS + PHOX + PEOX + pH + AP +MBC + MBN, data =
environment)
Partitioning of variance:
Inertia Proportion
Total 644.87 1.0000
Constrained 560.18 0.8687
Unconstrained 84.69 0.1313
Eigenvalues, and their contribution to the variance
Importance of components:
RDA1 RDA2 RDA3 RDA4 RDA5 RDA6
RDA7
Eigenvalue 237.4215 126.5881 66.9355 31.62478 21.82210 18.56123
9.04857
Proportion Explained 0.3682 0.1963 0.1038 0.04904 0.03384 0.02878
0.01403
Cumulative Proportion 0.3682 0.5645 0.6683 0.71731 0.75115 0.77993
0.79396 ...
然后我运行以下代码。这很正常。
anova.cca(mod)
Permutation test for rda under reduced model
Permutation: free
Number of permutations: 999
Model: rda(formula = species ~ Treatment + SR + DOC + NH4 + NO3 + AG + BG +
CB + XYL + LAP + NAG + PHOS + PHOX + PEOX + pH + AP + MBC + MBN, data =
environment)
Df Variance F Pr(>F)
Model 21 560.18 7.2444 0.001 ***
Residual 23 84.69
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
在上面我运行以下内容以了解轴的重要性。
anova.cca(mod,by = "axis")
Error in terms.formula(formula, "Condition", data = data) :
'data' argument is of the wrong type
我不知道发生了什么事,让我很困惑。我举了这个例子:
data(dune)
data(dune.env)
dune.Manure <- rda(dune ~ ., dune.env)
anova.cca(dune.Manure,by='axis')
Permutation test for rda under reduced model
Forward tests for axes
Permutation: free
Number of permutations: 999
Model: rda(formula = dune ~ A1 + Moisture + Management + Use + Manure, data = dune.env)
Df Variance F Pr(>F)
RDA1 1 22.3955 7.4946 0.003 **
RDA2 1 16.2076 5.4239 0.066 .
RDA3 1 7.0389 2.3556 0.679
RDA4 1 4.0380 1.3513 0.998
....
Residual 7 20.9175
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
这是有效的。我将数据与示例和我的数据进行比较,并发现没有错误(我认为)。问题是“anova.cca(mod,by =”axis“)”中的错误,为什么会发生? 。那么如何处理这个问题。非常感谢!!!