在R中进行子设置后,Decorana / VEGAN函数中的“ X”必须是数字错误

时间:2019-02-21 08:50:58

标签: r select subset vegan

我一直收到此错误:rowSums(veg)中的错误:

 1 - MyLayoutBinding binding = MyLayoutBinding.inflate(layoutInflater);
 2 - MyLayoutBinding binding = MyLayoutBinding.inflate(layoutInflater, viewGroup, false);

我从一个大数据集中子集了一小部分,当我运行DCA排序时,我不断收到上述错误消息。我检查了一下,但是在de行中没有字符数据。

 'x' must be numeric

有人可以告诉我我在做什么错吗?

子集(DatasetMerg)的示例数据

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

Dataveg2018A <- subset(DatasetMerg, Year == "2018" & Block == "A",
                                     select = 4:7)
ord1<-decorana(Dataveg2018A)

1 个答案:

答案 0 :(得分:0)

所有变量都是原始变量DatasetMerg及其子集(Dataveg2018A中的非数字变量。您可以看到此发布命令str(DatasetMerg),该命令将所有变量作为因子(及其子集相同)。您还可以在自己的完整DatasetMerg显示中看到这一点,其中所有物种数据均作为因子给出。这只是您物种的第一个,您给出的数据为:

    Agrostis.capillaris = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Names = c("18A01", 
    "18A02", "18A03", "18A04", "18A05", "18A06", "18A07", "18A08", 
    "18A09", "18A10", "18A11", "18A12", "18A13", "18A14", "18A15", 
    "18A16", "18A17", "18A18", "18A19", "18A20"), .Label = c("0", 
    "2", "3", "4", "6"), class = "factor")

请注意最后的定义class = "factor"。值(所有1L)给出因子水平的索引,这些水平在.Label中给出。因此,您所有的数据都是一个(1L),它们显示为非数字(一个字符)的.Labels[1L] == c("0", "2", "3", "4", "6")[1L] == "0"