运行LCMM的gridsearch函数报错:'what'必须为函数或字符串
问题解决:gridsearch运行时出现
'what' must be a function or character string错误 错误原因
你在gridsearch的m参数中直接执行了lcmm::hlme()函数,导致传入的是模型运行后的结果对象,而gridsearch需要的是未执行的函数调用表达式——它要基于这个表达式重复调用模型进行网格搜索优化,直接传入模型对象会导致内部do.call调用失败。
修正后的代码
将m参数的hlme调用用quote()包裹,确保传递的是函数调用表达式而非运行结果:
lcga1 <- lcmm::hlme(NFL_log ~ Days_since_injury, random = ~1, ng = 1, subject ='subjectId_new', data = biom) lcga2 <- lcmm::gridsearch( rep = 100, maxiter = 10, minit = lcga1, m = quote(lcmm::hlme(NFL_log ~ Days_since_injury, subject ='subjectId_new', ng = 2, data = biom, mixture =~ Days_since_injury)) )
额外验证点
- 确认
minit参数传入的lcga1是正确拟合的单组(ng=1)模型,这是多组模型网格搜索的合理初始值 - 检查
biom数据中subjectId_new是合法的分组变量(无缺失、格式正确) - 确保
mixture =~ Days_since_injury的公式符合hlme对混合模型参数的要求
内容的提问来源于stack exchange,提问作者Gin
相关产品推荐
相关产品推荐

