首页 > 解决方案 > 从多个数据帧获取和保存结果

问题描述

我有九个不同的数据框df1, df2, df3, df4, df5, df6, df7, df8df9. 我想编写一个函数,使用mice包分别为每个数据帧应用以下计算:

imputed_Data <- mice(df, m=3, maxit = 3, method = 'pmm', seed = 500)

到最后,我应该得到九个不同的imputed_Data

我所做的是:

for(i in 9) {
  imputed_Data <- mice(df[[i]], m=3, maxit = 3, method = 'pmm', seed = 500)
  result[[i]] <- mice::complete(imputed_Data)
  }

标签: rdataframeimputationr-mice

解决方案


把你df的 's 放在一个列表中

library(purrr)
dfList <- list(df1, df2, df3, df4, df5, df6, df7, df8,  df9)

这会将其作为 df 列表提供给您。

## NOT RUN ##
imputed_data <- 
  map(dfList, ~ mice(.x, m=3, maxit = 3, method = 'pmm', seed = 500)) 

如果您希望它作为单个连接的 df

imputed_data <- 
  map_df(dfList, ~ mice(.x, m=3, maxit = 3, method = 'pmm', seed = 500))

推荐阅读