gpt4 book ai didi

r - CCA分析: Error in rowSums(X) : 'x' must be numeric

转载 作者:行者123 更新时间:2023-12-02 02:01:52 25 4
gpt4 key购买 nike

我尝试从 vegan 包中进行 CA 分析。

这是我使用的代码:

install.packages("vegan")
library(vegan)

plots <- c("plotA", "plotB", "plotC", "plotD", "plotE")
animal1 <- c(2,7,4,8,1)
animal2 <- c(4,3,7,1,0)
animal3 <- c(8,5,0,1,3)
animal4 <- c(2,2,9,5,2)
animal5 <- c(1,6,9,8,7)

animalData <- data.frame (plots, animal1, animal2, animal3, animal4, animal5)
attach(animalData)

animalData.ca <- cca(animalData)

但是,我总是收到错误:

Error in rowSums(X) : 'x' must be numeric

我知道标签是一个因素,如果删除第一列,分析就会起作用。但随后分析会创建自己的标签,而我无法使用我的标签。有没有办法让我自己的标签(plotA、plotB 等)包含在内?

最佳答案

您需要将 plots 变量存储为 animalData 数据框的 rownames 属性,而不是作为实际数据中的变量.

你想要:

library(vegan)

plots <- c("plotA", "plotB", "plotC", "plotD", "plotE")
animal1 <- c(2,7,4,8,1)
animal2 <- c(4,3,7,1,0)
animal3 <- c(8,5,0,1,3)
animal4 <- c(2,2,9,5,2)
animal5 <- c(1,6,9,8,7)

animalData <- data.frame(animal1, animal2, animal3, animal4, animal5)
rownames(animalData) <- plots

animalData 现在应该如下所示:

> animalData
animal1 animal2 animal3 animal4 animal5
plotA 2 4 8 2 1
plotB 7 3 5 2 6
plotC 4 7 0 9 9
plotD 8 1 1 5 8
plotE 1 0 3 2 7

然后是 CA

animalData.ca <- cca(animalData)

有效:

> animalData.ca
Call: cca(X = animalData)

Inertia Rank
Total 0.3793
Unconstrained 0.3793 4
Inertia is mean squared contingency coefficient

Eigenvalues for unconstrained axes:
CA1 CA2 CA3 CA4
0.219528 0.099206 0.055572 0.005018

绘制该对象的结果

plot(animalData.ca, type = "text", scaling = 3)

enter image description here

如您所见,它使用了 animalData 数据框中的属性数据。

另外,不要像这样 attach() 数据集;它不是必需的,而且实际上很危险,因为数据不是附加的,而是一个独立的副本。

关于r - CCA分析: Error in rowSums(X) : 'x' must be numeric,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13402892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com