“"MaxNWts" 与多个实际参数匹配”的错误

Error of ' "MaxNWts" matched by multiple actual arguments'

我在尝试 运行 MICE 时收到匹配参数错误。我试过增加 maxits 和 maxnwts,但我仍然遇到错误。

mice(df, m = 7, printFlag = FALSE, maxit = 350, seed = 123, MaxNWts = 50000)

Error in nnet.default(X, Y, w, mask = mask, size = 0, skip = TRUE, softmax = TRUE, : formal argument "MaxNWts" matched by multiple actual arguments Calls: mice ... sampler.univ -> do.call -> mice.impute.polyreg -> multinom

现在您将 maxitMaxNWts 参数添加到 mice(),您会收到不同的错误,不是吗?

如其文档中所述,mice() 在输入变量时实际上调用了其他函数。 mice.impute.polyreg() 是错误消息的一部分,是分类变量的默认插补函数。如果您阅读 mice.impute.polyreg() 的文档,您会看到它的参数称为 nnet.MaxNWts,而不是 MaxNWtsmice.impute.polyreg()nnet.MaxNWts 的值传递给 nnet::multinom()MaxNWts 参数。

如果您为 mice.impute.polyreg() 提供 MaxNWts 参数,它会将 two MaxNWts 传递给 nnet::multinom(): one with nnet.MaxNWts 的默认值,以及另一个(通过 ...)您提供的值。错误消息本身似乎源自 match.call(),位于 nnet::multinom().

您只需键入 mean(x = 1, x = 2).

即可(重新)产生此错误

如果您在通话中将 MaxNWts 替换为 nnet.MaxNWts,您应该不会收到此错误消息。

请注意,您实际上并没有提出问题,只是表明您(仍然)收到了一条错误消息。如果我的回答不是您需要的,请告诉我。

致谢:此答案是 Gordon Li 对 another one 的扩展版本。当我收到与您相同的错误消息时,我自己找到了答案!