如何修复错误:下标 `AMr1.orig` 是矩阵,数据 `x.imp[ -possibleFactors][AMr1.orig]` 的大小必须为 1

How to fix Erreur : Subscript `AMr1.orig` is a matrix, the data `x.imp[, -possibleFactors][AMr1.orig]` must have size 1

我正在尝试 运行 Amelia 使用以下代码将一些缺失数据归因于几个变量:

set.seed(1) zz[c("id", "sex", "team", "minsSocial", "satisTravail", "performance")] <- Amelia::amelia(zz[c("id", "sex", "team", "minsSocial", "satisTravail", "performance")], m=1, idvars="id", noms=c("sex","team"))$imputations$imp1

不幸的是,我收到此错误消息:

错误:下标AMr1.orig是一个矩阵,数据x.imp[, -possibleFactors][AMr1.orig]的大小必须为1。

有没有关于问题出在哪里以及如何解决的问题?是因为我的数据包含 <1 的值吗?

谢谢!

我认为这可能是由于最近对 tibbles 中的错误处理进行了一些更改。如果您将数据转换为 data.frame(假设 zz 是一个 tibble),错误应该消失(这对我有用)。

zz <- as.data.frame(zz)

虽然不确定错误消息背后的原因。我从 rlang::last_error() 收到类似的错误消息,并且该代码适用于早期版本的软件包。

<error/tibble_error_subset_matrix_must_be_scalar>
Subscript `AMr1.orig` is a matrix, the data `x.imp[AMr1.orig]` must have size 1.
Backtrace:
 1. Amelia::amelia(...)
 2. Amelia::amelia.default(...)
 3. base::lapply(seq_len(m), do.amelia)
 4. Amelia:::FUN(X[[i]], ...)
 5. Amelia:::impfill(...)
 7. tibble:::`[<-.tbl_df`(...)
 8. tibble:::tbl_subassign_matrix(x, j, value, j_arg, substitute(value))