R 中的 RDA 分析给出错误 "attempt to set an attribute on NULL"

RDA analysis in R gives error "attempt to set an attribute on NULL"

我 运行 使用 Vegan 包在 R 中进行分析。我只希望摘要提取一些值的方式非常简单。但它一直告诉我错误信息。为什么?

我有这个数据集

feed.raw1 =structure(c(0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
            5L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 7L, 11L, 3L, 1L, 
            0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 
            0L, 0L, 0L, 0L, 3L, 0L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 8L, 7L, 5L, 1L, 
            0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 10L, 5L, 0L, 0L, 1L, 0L, 0L, 
            0L, 0L, 0L, 0L, 0L, 1L, 5L, 0L, 0L, 8L, 9L, 0L, 0L, 5L, 0L, 0L, 
            0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 15L, 0L, 
            51L, 10L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 3L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
            0L, 0L, 0L, 45L, 203L, 17L, 54L, 4L, 1L, 0L, 0L, 0L, 0L, 10L, 
            9L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 22L, 206L, 9L, 16L, 1L, 
            1L, 6L, 6L, 0L, 0L, 4L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
            0L, 7L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
            2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 3L, 1L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 23L, 4L, 1L, 2L, 0L, 2L, 0L, 0L, 0L, 
            0L, 0L, 0L, 0L, 0L, 76L, 0L, 96L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
            11L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 270L, 
            144L, 7L, 8L, 15L, 6L, 6L, 2L, 6L, 1L, 25L, 5L, 0L, 1L, 1L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 14L, 2L, 1L, 0L, 0L, 0L, 0L, 
            0L, 3L, 0L, 0L, 0L, 3L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
            0L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 
            0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 7L, 0L, 0L, 0L, 0L, 0L, 
            0L, 14L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 
            0L, 0L), .Dim = c(12L, 32L), .Dimnames = list(c("a", "b", "c", 
                                                            "d", "e", "f", "g", "h", "i", "j", "k", "l"), c("a", "b", "c", 
                                                                                                            "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", 
                                                                                                            "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "a1", "b1", 
                                                                                                            "c1", "d1", "e1", "f1")))

我运行这个分析:

library(vegan)
feed_raw.hel = decostand(feed.raw1, method = "pa")

pca.feed=vegan::rda(feed_raw.hel, scale=FALSE) 
head(summary(pca.feed))

它给我这个错误:

Canonical correspondence analysis

Class: rda cca
Call: rda(X = feed_raw.hel, scale = FALSE)

Total inertia: 0

Eigenvalues:
Error in names(vec) <- paste("Ax", 1:length(vec), sep = "") : 
  attempt to set an attribute on NULL

未发现错误(请参阅 OP 中的评论):

> library(vegan)
> feed_raw.hel = decostand(feed.raw1, method = "pa")
>
> pca.feed=vegan::rda(feed_raw.hel, scale=FALSE)
> head(summary(pca.feed))

Call:
rda(X = feed_raw.hel, scale = FALSE)

Partitioning of variance:
              Inertia Proportion
Total           5.394          1
Unconstrained   5.394          1

Eigenvalues, and their contribution to the variance

Importance of components:
                         PC1    PC2    PC3    PC4     PC5     PC6     PC7
Eigenvalue            2.0696 0.7676 0.6639 0.5502 0.41578 0.31941 0.22209
Proportion Explained  0.3837 0.1423 0.1231 0.1020 0.07708 0.05922 0.04117
Cumulative Proportion 0.3837 0.5260 0.6491 0.7511 0.82817 0.88739 0.92856
                          PC8     PC9    PC10    PC11
Eigenvalue            0.15383 0.11310 0.07857 0.03984
Proportion Explained  0.02852 0.02097 0.01457 0.00739
Cumulative Proportion 0.95708 0.97805 0.99261 1.00000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  2.775394


Species scores

          PC1      PC2      PC3      PC4        PC5      PC6
a    -0.03289 -0.13245  0.18066  0.12616 -0.2028751  0.07257
b    -0.19170 -0.26686 -0.20142 -0.16621  0.0739356 -0.16726
c    -0.43542 -0.24013 -0.02194  0.16668 -0.0037653  0.18018
d    -0.43702  0.08614 -0.05548 -0.06814 -0.0009418 -0.03947
e    -0.24815 -0.06070  0.29795  0.18439 -0.0879021 -0.02246
f     0.08852  0.11597 -0.07947  0.02250 -0.0926734 -0.13060
....                                                    


Site scores (weighted sums of species scores)

          PC1      PC2      PC3     PC4     PC5     PC6
a    -1.65813  0.55267  0.90341  0.4485  0.8856 -0.7321
b    -1.70818  0.11084 -1.33080 -0.9734 -0.8929  0.4280
c    -0.25333 -1.02024  1.39160  0.9718 -1.5627  0.5590
d    -0.09478 -1.47685 -1.03494  1.1078  1.2228 -0.2536
e     0.26417  0.60502  0.71856 -0.6194  1.1614  1.2200
f     0.36048 -0.01608 -0.09826 -0.2709  0.3182  1.3866
....

我也有这个问题,最后发现,至少在我的情况下,另一个包 (ade4) 也有一个 cca 函数,它屏蔽了 vegan 中的 cca 函数。这在帮助文件中有些含糊地提到。我通过重新启动我的 R 会话(在 RStudio 中)并按以下顺序调用库来解决我的代码中的这个问题:

library(ade4)
library(vegan)

然后 vegan::cca 函数接管 ade4::cca 函数。