我有一组 5 个数据集,这些数据集是使用 mice 包通过多次插补生成的。我正在对这些数据集运行分层回归,但是当我尝试合并结果时,我收到一个错误,指出"必须命名第 6 列"并使用.name_repair。我从来没有见过这个问题,我检查了我的专栏的名称,它们都有一个名字。有人可以解释我应该怎么做才能进行故障排除吗?
pool(with(mids_dis, lmer(exer_vig ~ 1 + (1 | team_num) + (1 | dept_client))))
Error: Column 6 must be named.
Use .name_repair to specify repair.
Call `rlang::last_error()` to see a backtrace
> rlang::last_error()
<error>
message: Column 6 must be named.
Use .name_repair to specify repair.
class: `rlang_error`
backtrace:
1. mice::pool(...)
2. mice:::pool.fitlist(getfit(object), dfcom = dfcom)
4. mice:::summary.mira(fitlist, type = "tidy", exponentiate = FALSE)
8. base::lapply(fitlist, tidy, effects = "fixed", ...)
10. broom:::tidy.merMod(X[[i]], ...)
11. broom::fix_data_frame(ret, newnames = nn)
13. tibble:::as_tibble.data.frame(ret)
14. tibble:::as_tibble.list(unclass(x), ..., .rows = .rows, .name_repair = .name_repair)
15. tibble:::lst_to_tibble(x, .rows, .name_repair, col_lengths(x))
16. tibble:::set_repaired_names(x, .name_repair)
21. tibble:::repaired_names(names(x), .name_repair = .name_repair)
22. tibble:::check_unique(new_name)
Call `rlang::last_trace()` to see the full backtrace
经过一番搜索,我在这里找到了问题的答案:
https://github.com/stefvanbuuren/mice/issues/95
简而言之,鼠标在使用 lmerTest 时会抛出name_repair错误。有两种方法可以解决此错误:
如果您不需要显著性 (p( 值,那么加载 lme4 或使用 lme4::lmer 将没有问题。
如果您确实需要显著性值,那么您还需要加载包鼠标添加。加载后,您可以毫无问题地使用 lmerTest。
library(mice)
library(miceadds)
library(lmerTest)
summary(pool(with(mids_dis, lmerTest::lmer(exer_vig ~ 1 + age + (1 | team_num) + (1 | dept_client)))))
estimate std.error statistic df p.value
(Intercept) 2.36102939 0.31957622 7.388001 244.3050 2.353007e-12
age 0.01096181 0.01042713 1.051277 238.7271 2.941943e-01