2016-10-03 64 views
2

我試圖運行GLS功能,但我不斷收到此錯誤信息GLS:錯誤,同時運行與NLME

「錯誤model.frame.default(公式=〜+變種FS,數據=列表(MINBIO15 = C(37L,: 對象不是矩陣」

我的數據看起來像這樣:

     MINBIO15 MAXBIO15 FS 
Achyranthes_aspera   37  117  0 
Achyropsis_avicularis  28  86  0 
Alternanthera_adscendens -999 -999  -999 
Alternanthera_brasiliana 33  119  0 
Alternanthera_caracasana 35  109  1 
Alternanthera_cinerella 105  120  1 
... 

我的腳本是:

>tree<-read.tree ("tree.phy") 
>clima<-read.table("mydata.txt",header=TRUE,na.strings=-999) 
>clima<-na.omit(clima) 
>match.phylo.data(tree, clima) 
>var=(clima$MINBIO15) 
> result.br <- gls(var ~ FS, clima, correlation=corBrownian(phy=tree),method="REML") 

數據和樹的提示完美匹配,我的數據是一個數據幀

也許你可以給它一些建議嗎?

+0

歡迎堆棧溢出! (1)你可能會嘗試使用'gls(MINBIO15〜FS,clima,...)'(2)你能否給我們提供一個[可重現的例子]的數據(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

回答

0

看起來像gls需要在data參數內引用其所有數據值。你還沒有給出一個完全可重複的例子,但顯然這並不重要。如果我在你的縮寫以上數據集,使用na.omit(),定義var,然後

gls(var~FS,clima) 

我給你做了同樣的錯誤讀取。如果我使用的數據幀(MINBIO15)中的變量的名稱,而不是:

gls(MINBIO15~FS,clima) 

我得到的顯然是有意義的結果。

預料到你的下一個問題:如果你想運行不同的反應變量相同的迴歸,你可以使用像

varname <- "MINBIO15" 
form <- reformulate("FS",response=varname) 
gls(form,clima, ...)