我有九个不同的数据帧 df1, df2, df3, df4, df5, df6, df7, df8
和 df9
. 我想写一个函数,应用下面的计算,用 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)
}
把你的 df
列表中的
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))