';伦敦金属交易所';错误R";尝试应用非函数

';伦敦金属交易所';错误R";尝试应用非函数,r,nlme,R,Nlme,我正在使用以下代码对我的数据集进行lme分析 M1 <- lme(VT ~ visit + sx + agevis + c_bmi + gpa + qa + BP + MH + ethn, data = Cleaned_data4t300919, random = ~ 1 + visit |id, corAR1(),method = "ML", na.action = na.omit(Cleaned_data4t300919)) M1 我认为类似的尝试也是问题所在 从?lme: na.a

我正在使用以下代码对我的数据集进行lme分析

M1 <- lme(VT ~ visit + sx + agevis + c_bmi + gpa + qa + BP + MH + ethn, data = Cleaned_data4t300919, random = ~ 1 + visit |id, corAR1(),method = "ML", na.action = na.omit(Cleaned_data4t300919))
M1
我认为类似的尝试也是问题所在

?lme

na.action:一个函数,指示当数据 包含“NA”

您提供的是数据,而不是函数,因为
na.omit(dataset)
返回一个
data.frame
,其中
na
包含删除的行,而不是可以应用于指定的
数据=
。只是:

na.action=na.omit
或类似的
na.*
功能就足够了


确定这类问题的一种方法是使用
?debug
-
debug(lme)
,然后逐行检查函数,以准确查看响应的错误

na.action=na.omit(已清理数据4T300919)
是我认为的问题。从
?lme
-na。操作:一个函数,指示当数据包含“na”时应该发生什么-您提供的是数据,而不是函数。确定这类问题的一种方法是使用
debug
-
debug(lme)
,然后逐行检查函数,查看错误的确切响应。@thelatemail,post as answer?@BenBolker-升级为answer。感谢您的回答。我是新手,不太明白你的答案。您能举个例子吗。@sylvie-例如:just
na.action=na.omit
就足够了,您不需要再次指定数据集。
na.action = na.omit(Cleaned_data4t300919)
na.action=na.omit