【问题标题】:How can I combine all dataframes in an amelia object into a single dataframe?如何将 amelia 对象中的所有数据帧组合成一个数据帧?
【发布时间】:2021-12-21 07:43:09
【问题描述】:
我制作了一个 amelia 对象,由 5 个数据帧组成,这些数据帧在我提供的数据集上进行了多次插补,但缺少值。我想将所有这些数据帧组合成一个数据帧,然后我可以在程序中的所有后续分析中使用它,但我正在努力寻找如何做到这一点。我是只使用对象中的第 5 个数据帧,还是需要执行一些步骤才能将所有数据帧平均并放在一起?
我不断看到有关 mi.meld 的内容,但我找不到能清楚地告诉我参数应该是什么以及它们需要采用什么格式以及为什么(抱歉,我对此很陌生)。
感谢您的帮助:)
【问题讨论】:
标签:
r
missing-data
imputation
【解决方案1】:
Amelia 与您的工作流程结合起来可能有点棘手,但您可以使用 R 的有用列表管理和迭代功能轻松地做您想做的事!简而言之,您需要做的是从amelia_object$imputations(amelia_object 是由amelia() 函数构造的对象)中进行估算,然后使用简单的bind_rows() 函数和分组将它们全部组合成一个数据框并将不同的插补嵌套到不同的行中。然后,您对所有不同的插补运行您想要的任何模型(使用迭代函数,例如来自 purrr 包的函数)。 Amelia 的 mi.meld function 期望通过在不同插补(例如线性模型的系数集)上运行模型获得的数量数据框以及与这些数量相对应的标准误差数据框。我认为this helpful guide 和this one 将指导您完成整个过程!如果问题没有得到解决,而您需要做一些更复杂的事情,请随时分享有关您的特定问题和可重现代码的更多详细信息!