【问题标题】:Error while running gls with nlme使用 nlme 运行 gls 时出错
【发布时间】:2016-10-03 16:15:38
【问题描述】:

我正在尝试运行 gls 函数,但我不断收到此错误消息:

"model.frame.default(公式 = ~var + FS, data = list(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") 

数据和树提示完美匹配,我的数据是一个数据框

或许你可以给一些建议?

【问题讨论】:

  • 欢迎来到 Stack Overflow! (1) 您可以尝试gls(MINBIO15 ~ FS, clima, ...) (2) 您能否提供数据,以便为我们提供reproducible example

标签: r nlme


【解决方案1】:

看起来gls 需要在data 参数中引用其所有数据值。你没有给出一个完全可重现的例子,但显然没关系。如果我在上面读到你的缩写数据集,使用na.omit(),定义var,然后

gls(var~FS,clima)

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

gls(MINBIO15~FS,clima)

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

预测您的下一个问题:如果您想使用不同的响应变量运行相同的回归,您可以使用类似

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 2021-01-18
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2015-10-11
    • 2017-06-17
    相关资源
    最近更新 更多