我正在尝试使用“交互”包来创建简单斜率的约翰逊-尼曼图。但是,当尝试运行“sim_slopes()”函数时,出现以下错误。直到我将R更新到4.2.2,我才没有遇到这个问题。我使用的是 macOS Ventura 13.1。
Error:
! `class` must be a character vector, not a list.
Backtrace:
1. interactions::sim_slopes(...)
3. jtools:::summ.glm(...)
4. jtools:::do_robust(model, robust, cluster, data, vcov)
5. jtools::get_robust_se(...)
6. jtools::stop_wrap(...)
8. rlang (local) `<fn>`(class = <named list>)
下面是我的代码示例,包括可用于测试它的模拟数据集。
#Simulated Dataset
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)
#define model
mod = glm(outcome~predictor*moderator, data=df)#define model
#Load "Interactions" Library to call "sim_slopes()"
library(interactions)
#create jn plot
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)
我已经尝试了在 StackOverflow 上找到的与此事相关的所有内容,因此,如果您对我的具体问题有任何建议,我们将不胜感激。
我已经尝试过:
- 更新 rlang
- 更新 jtools
- 更新两个包的依赖项
- 重新安装我过去安装的所有软件包
- 安装和更新 XCode
- 更新 RStudio
- 重新启动计算机
- 检查软件包更新
- 检查我的计算机上的软件更新
最佳答案
打印 abort_args 变量让我知道我缺少一个名为“sandwich”的包,安装它后,一切正常。
关于r - 为什么 R 更新后 sim_slopes() 中会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75120120/