R升级至4.2.2后sim_slopes()函数报错问题求助
问题:macOS Ventura 13.1下R 4.2.2调用interactions包sim_slopes()报错
! class must be a character vector, not a list. 问题描述
在macOS Ventura 13.1系统、R 4.2.2版本环境下,使用interactions包的sim_slopes()函数生成Johnson-Neyman简单斜率图时,触发错误提示:
! `class` must be a character vector, not a list.
尝试多种常规修复手段后问题仍未解决,需针对性解决方案。
可复现代码
# 模拟数据集 moderator = c(rbinom(100,2,.5)) predictor = c(rnorm(100,2.5,1)) outcome = c(rnorm(100,17,2)) df = data.frame(moderator,predictor,outcome) # 定义模型 mod = glm(outcome~predictor*moderator, data=df) # 加载interactions包并生成JN图 library(interactions) jnplot = sim_slopes(mod, pred = predictor, modx = moderator, jnplot = TRUE)
错误回溯信息
rlang::last_trace() # <error/rlang_error> # Error: # ! `class` must be a character vector, not a list. # --- # Backtrace: # ▆ # 1. └─interactions::sim_slopes(...) # 2. ├─jtools::summ(...) # 3. └─jtools:::summ.glm(...) # 4. └─jtools:::do_robust(model, robust, cluster, data, vcov) # 5. └─jtools::get_robust_se(...) # 6. └─jtools::stop_wrap(...) # 7. ├─base::do.call(rlang::abort, abort_args) # 8. └─rlang (local) `<fn>`(class = <named list>) # 9. └─rlang:::validate_signal_args(...) # 10. └─rlang:::check_character(class, call = env) # 11. └─rlang:::stop_input_type(x, what, ..., arg = arg, call = call) # 12. └─rlang::abort(message, ..., call = call, arg = arg)
已尝试的解决方法
- 更新rlang、jtools包至最新版本
- 重装上述包的所有依赖
- 卸载并重装所有已安装的R包
- 安装并更新XCode
- 更新RStudio至最新版本
- 重启电脑
- 检查并更新系统软件
针对性解决方案建议
1. 关闭稳健标准误计算
从错误回溯看,问题触发于稳健标准误计算流程,尝试在调用sim_slopes()时显式关闭稳健标准误:
jnplot = sim_slopes(mod, pred = predictor, modx = moderator, jnplot = TRUE, robust = FALSE)
2. 安装jtools与rlang的兼容版本组合
该错误大概率是jtools与rlang版本不兼容导致(rlang 1.0+对错误信号的参数格式要求更严格,旧版jtools未适配)。可尝试安装兼容的版本组合:
# 卸载当前版本 uninstall.packages(c("jtools", "rlang")) # 安装指定兼容版本(示例版本,可根据实际情况调整) install.packages("https://cran.r-project.org/src/contrib/Archive/jtools/jtools_2.2.2.tar.gz", repos=NULL, type="source") install.packages("https://cran.r-project.org/src/contrib/Archive/rlang/rlang_1.0.6.tar.gz", repos=NULL, type="source")
3. 安装interactions包的GitHub开发版
开发版可能已修复此类兼容性问题:
# 先安装remotes包(若未安装) install.packages("remotes") # 安装interactions开发版 remotes::install_github("jacob-long/interactions")
内容的提问来源于stack exchange,提问作者Hannah Wild
相关产品推荐
相关产品推荐

