使用Interactions包sim_slopes绘Johnson-Neyman图时遇rlang报错求助
解决interactions包sim_slopes绘制Johnson-Neyman图的
class must be a character vector报错 报错原因
从回溯信息来看,问题出在jtools::get_robust_se调用rlang的类型检查逻辑时,传递了列表而非要求的字符向量。结合你提供的版本组合(rlang 1.0.6 + interactions 1.1.5),核心原因是新版本rlang的类型检查规则更严格,而旧版interactions及其依赖的jtools未适配该变化,导致参数类型不匹配触发报错。其他环境正常是因为它们的包版本组合兼容性更好。
修复方法
方法1:升级interactions和jtools到最新版
新版本的包已适配rlang的更新,修复了这类兼容性问题:
install.packages(c("interactions", "jtools")) # 重启R后重新运行代码 library(interactions) m <- lm(mpg ~ hp * wt, data = mtcars) sim_slopes(m, pred = hp, modx = wt, jnplot = TRUE)
方法2:降级rlang到兼容版本
如果暂时不想升级interactions,可将rlang降级到与1.1.5版本兼容的旧版(如0.4.11):
# 先卸载当前rlang remove.packages("rlang") # 安装指定版本 install.packages("rlang", version = "0.4.11", repos = "http://cran.us.r-project.org") # 重启R后重新运行代码
方法3:临时禁用robust标准误计算
报错触发于robust标准误计算环节,可通过关闭该功能绕过:
library(interactions) m <- lm(mpg ~ hp * wt, data = mtcars) sim_slopes(m, pred = hp, modx = wt, jnplot = TRUE, robust = FALSE)
内容的提问来源于stack exchange,提问作者Ttytamaki
相关产品推荐
相关产品推荐

