-1

我有一组 5 个数据集,这些数据集是使用 mouse 包通过多重插补生成的。我正在对这些数据集运行分层回归,但是当我尝试合并结果时,我收到“必须命名第 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
4

1 回答 1

1

经过一番搜索,我在这里找到了我的问题的答案:

https://github.com/stefvanbuuren/mice/issues/95

简而言之,老鼠在使用 lmerTest 时会抛出 name_repair 错误。有两种方法可以解决此错误:

如果您不需要显着性 (p) 值,则加载 lme4 或使用 lme4::lmer 将毫无问题。

如果您确实需要显着性值,那么您还需要加载包miceadds。加载后,您可以毫无问题地使用 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
于 2020-01-16T15:23:06.413 回答