首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MICE的多重填充提供了预期行数的两倍

使用MICE的多重填充提供了预期行数的两倍
EN

Stack Overflow用户
提问于 2021-10-15 01:45:30
回答 1查看 33关注 0票数 0

我运行了以下代码来估算2120个观测值的10个数据帧。

我希望获得10X2120= 21200个观察值的长数据帧,但我获得了42400个观察值,就好像整个过程运行了两次一样。前3列如下所示。

这不是一个大问题,因为我可以对前半部分进行子集,但我想知道是否有人对此有解释。我的代码有什么问题吗?

谢谢

代码语言:javascript
运行
复制
for (group in 0:1) {
  predictor.selection <- quickpred(imputed_df, mincor=0.1, minpuc=0.5,method='pearson',
                                   exclude=c("idme"))
  imputation <- mice(imputed_df, m=10, method="pmm", visitSequence="monotone",
                     predictorMatrix = predictor.selection)
 
  long.imputation = rbind(long.imputation,complete(imputation, action="long"))
} ````

row#   .imp   .id    idme
1       1       1     5001
2       1       2     5002
3       1       3     5003
4       1       4     5004
...
2121    1       2120   8288
2122    2       1      5001
2123    2       2      5002
2124    2       3      5003
...
21200  10      2120   8288
21201   1       1     5001
21202   1       2     5002
21203   1       3     5003
21204   1       4     5004
...
23320   1       2120   8288
23321   2       1      5001
23322   2       2      5002
23324   2       3      5003
...
42400  10      2120   8288
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 04:16:38

由于循环中没有使用group值(0:1),因此使用lapply/replicate将是一个很好的选择。

代码语言:javascript
运行
复制
imputed_dataset <- function() {
  predictor.selection <- quickpred(imputed_df, mincor=0.1, minpuc=0.5,method='pearson',
                                   exclude=c("idme"))
  imputation <- mice(imputed_df, m=10, method="pmm", visitSequence="monotone",
                     predictorMatrix = predictor.selection)
  return(imputation)
}

result <- do.call(rbind, replicate(2, imputed_dataset(), simplify = FALSE))
result
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69579088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档