我想在使用simr运行的功率分析中增加正在考虑的样本量。利用我的5名参与者的试点数据,我能够运行功率分析,但当我使用extend函数将受试者数量增加到20时,我得到:(函数(类,fdef,mtable(中的错误:无法找到函数"extend"的继承方法来签名";lmerModeLmerTest"。extend函数似乎对我的模型不起作用。
我使用以下代码得到了相同的错误,这些代码取自在线示例:
#load in the data
sleep_df = lme4::sleepstudy %>%
clean_names()
#set up the model
y_var = "reaction"
fixed_effect = "days"
random_effect = "subject"
model_form = as.formula(paste0(y_var, " ~ ", fixed_effect, " + ", "(1|", random_effect, ")"))
print(model_form)
#run simulation
set.seed(1)
sleep_fit = lmer(model_form,
data = sleep_df)
model_form2 <- extend(sleep_fit, along="subject", n=20)
model_form2
任何见解都将不胜感激!
在我的脑海中,我能想到两个可能的错误:
- 您的
subject
变量不是指定为整数,而是指定为因子。extend()
仅适用于线性变量。然而,由于您用一个已知有效的例子重现了错误,我认为我们可以忽略这一点 - 问题不在于数据,而在于你的R会话。例如,如果在
simr
之后加载另一个包,该包具有一个也称为extend()
的函数,则函数simr::extend()
将被第二个包屏蔽。当您加载包时,这应该会显示出来,终端中会打印出类似The following object is masked from 'package:simr'
的消息。要解决此问题,请在要使用此函数时指定simr::extend()
,或者更改加载包的顺序
希望这能有所帮助。