You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取gamm4对象中原始指定的随机公式(排除平滑项)

解决方法

方法一:直接提取原始指定的随机效应公式

gamm4拟合对象会保留调用时的参数,直接从fit$call中解析原始的random参数即可,这是最准确的方式:

# 提取并解析原始随机效应公式
original_random_formula <- eval(fit$call$random)
original_random_formula

执行后会直接返回你最初指定的~(1|nest)+(1|year)。

方法二:从mer对象的随机公式中筛选目标项

如果必须从formula(fit$mer, random=T)的结果中过滤,可以通过正则表达式排除平滑项对应的Xr开头分组:

# 获取包含所有随机项的公式
full_random_formula <- formula(fit$mer, random = TRUE)
# 拆分公式为独立项
random_terms <- attr(terms(full_random_formula), "term.labels")
# 筛选出非Xr开头的项(即你指定的nest和year)
target_terms <- random_terms[!grepl("^Xr", random_terms)]
# 重新组合为目标公式
clean_random_formula <- as.formula(paste("~", paste(target_terms, collapse = " + ")))
clean_random_formula

内容的提问来源于stack exchange,提问作者Bill Shipley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:03:17