我对R有点新,所以原谅我的基本问题。我在一个完整的数据集上(358个位点,40个非生物参数,100个观察物种)进行了一个CCA。cca每组和row.names
library(vegan)
env <- read.table("env.txt", header = TRUE, sep = "\t", dec = ",")
otu <- read.table(otu.txt", header = TRUE, sep = "\t", dec = ",")
cca <- cca(otu~., data=env)
cca.plot <- plot(cca, choices=c(1,2))
vif.cca(cca)
ccared <- cca(formula = otu ~EnvPar1,2,n, data = env)
ccared.plot <- plot(ccared, choices=c(1,2))
orditorp(ccared.plot, display="sites")
这工作,而不在所述第一列(最初,包含数字样本的名字的第一列得到解释为一个可变使用样品名称,所以我使用的表没有这种信息,当我经由网站名称添加到情节orditorp,它会在图中给出“row.name = n”。) 但是,我想使用我的示例名称。我试图row.names = 1与样品名称信息两个表:
envnames <- read.table("envwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
otunames <- read.table("otuwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
,和ENV/OTU/envnames/otunames的任何组合。 CCA制定以及在任何情况下,但任何绘图命令产生
plot.ccarownames <- plot(cca(ccarownames, choices=c(1,2)))
Error in rowSums(X) : 'x' must be numeric
我的第二个问题是连接到的是:358点分为6组(4x60,2x59)。完整的矩阵将此信息推断为额外的列。 因为我无法解决行名问题,所以无论如何,我更加困于名义数据。 原始矩阵包含第一列(样本名称,数字,但可以很容易地转换为标称值)和第二列(组标识,名义值),然后是生物学观察。
我想什么有:
- 包含所有六组被着色每组的网站CCA。
- 一个只包含一组数据的CCA(没有手册 构建单个输入表)
- 使用我的原始样本名称的CCA图。
任何帮助表示赞赏!真的,我从昨天早上就卡住了:/
你是什么意思“如果我使用行名”?如果你把它们读入你的桌子?或者如果你在你的模型中使用它们?这不清楚。我也不确定你在讨论什么额外的专栏,或者CCA在这种情况下“失败”。请花时间创建一个[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。在使用默认软件包之外的功能时,请清楚您正在加载哪些库。如果我们能像你一样获得同样的错误,我们更有可能提供帮助。 – MrFlick
作为**素食**开发者之一,我可以非常自信地说这是用户错误,可能在某个地方,或许反复,一路上。如果您在数据框中正确设置这些行,素食主义者将使用行名称。如果将这些数据保留在数据对象中,我怀疑即使'cca()'也会工作,因为我们所做的第一件事之一是通过'as.matrix()'将数据转换为矩阵,因此您会得到一个字符矩阵如果在你的数据框*中有任何非数字信息*。正如弗里克先生所说,需要一个可重复的例子来进一步研究这一点。 –
您好,感谢您的快速回答。我应该使用elobarate:首先我使用read.table(x,header = 1,sep/dec),其中x包含一个带数字样本名称的列。这一列被解释为一个变量,并且cca变得混乱了。我尝试read.table(x,header = 1,row.names = 1,sep/dec),并且我在'rowSums(X)中得到错误:'x'必须是数字'消息。虐待更新我最初的问题。 – nouse