【问题标题】:Error "cannot coerce class '"formula"' into a data.frame" when using lme function使用 lme 函数时出现错误“无法将类“公式”强制转换为 data.frame”
【发布时间】:2013-10-16 11:39:45
【问题描述】:

我正在尝试执行如下的 lme 函数

mydata <- read.table(
    "H:/edu/Multivariat/HCMpart2.TXT", header=TRUE, sep="\t",
    na.strings="*", dec=",", strip.white=TRUE
)
mydata = data.frame(mydata)

summary(lme(mydata$x~1+mydata$grp+mydata$var, random~1|mydata$id))

其中 x 包含我的值,grp 和 var 表示导致 x 值的组和变量,id 是患者的 id。

其中 HCMpart2.txt 包含一个带有“id grp var x”的标题,中间有制表符以及所有这些的相应值。我尝试使用“as.numeric”函数将因子转换为数字因子,但它没有完成我的问题。

当我尝试执行 lme 函数时,我得到以下信息

Error in as.data.frame.default(data) : 
cannot coerce class '"formula"' into a data.frame

有人可以帮忙吗?我的印象是我做的一切都是正确的...... 问候 森德泽

【问题讨论】:

  • 您缺少= 符号。应该是random = ~1|mydata$id

标签: r


【解决方案1】:

三件事:

就像影子说的那样,你在随机参数中缺少一个等号。

lme 有一个 data 参数,可以避免您编写带有大量 $ 符号的丑陋代码。

拦截被隐式包含。

summary(model <- lme(x ~ grp + var, mydata, random = ~ 1 | id))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2017-04-19
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多