我运行了以下代码来估算2120个观测值的10个数据帧。
我希望获得10X2120= 21200个观察值的长数据帧,但我获得了42400个观察值,就好像整个过程运行了两次一样。前3列如下所示。
这不是一个大问题,因为我可以对前半部分进行子集,但我想知道是否有人对此有解释。我的代码有什么问题吗?
谢谢
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发布于 2021-10-15 04:16:38
由于循环中没有使用group值(0:1),因此使用lapply/replicate将是一个很好的选择。
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))
resulthttps://stackoverflow.com/questions/69579088
复制相似问题