我對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