首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nlme运行gls时出错

使用nlme运行gls时出错
EN

Stack Overflow用户
提问于 2016-10-04 00:15:39
回答 1查看 187关注 0票数 2

我正在尝试运行gls函数,但一直收到以下错误消息:

“对象错误(公式= ~var + FS,data = list(MINBIO15 = c(37L,:model.frame.default不是矩阵)”

我的数据如下所示:

代码语言:javascript
复制
                        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
...

我的脚本是:

代码语言:javascript
复制
>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") 

数据和树提示完全匹配,并且我的数据是一个数据帧

也许你能给我一些建议?

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 00:27:11

看起来gls需要在data参数中引用它的所有数据值。您还没有给出一个完全可重现的示例,但显然这并不重要。如果我读入了上面的缩写数据集,请使用na.omit(),定义var,然后

代码语言:javascript
复制
gls(var~FS,clima)

我得到了和你一样的错误。如果我在数据框中使用变量的名称(MINBIO15):

代码语言:javascript
复制
gls(MINBIO15~FS,clima)

我得到了明显合理的结果。

期待您的下一个问题:如果您想用不同的响应变量运行相同的回归,您可以使用如下内容

代码语言:javascript
复制
varname <- "MINBIO15"
form <- reformulate("FS",response=varname)
gls(form,clima, ...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39836006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档