我正在使用鼠标输入我丢失的数据。这里的问题是需要一两个小时才能完成估算。因此,当它完成估算时,我希望将其导出以供将来使用,以便在必须重新查看分析时避免重复耗时的估算过程。
我已经在谷歌上搜索过了,我找到了一个函数miceadds::write.mice.imputation。我已经看过手册了。它提供了一个导出的示例,但我不确定如何将其导入回来。它似乎生成了一些.dat文件。
假设我有以下代码:
# Model 1: Imputation using mice
imp1 <- mice::mice( nhanes, m=3, maxit=5 )
# write results
write.mice.imputation(mi.res=imp1, name="mice_imp1" )发布于 2019-06-20 21:06:58
如果您注意到当您使用write.mice.imputation时,它的默认值是将您输入的数据保存在各种类型的文件中(csv、spss、dat、Rdata)。
我们可以创建样本数据: set.seed(1) df <- data.frame(group = sample(c(1:5,NA),replace = TRUE,size = 10),val = sample(c(10:15,NA),replace = TRUE,size = 10))
加载并估算我们的数据:
require(mice)
require(miceadds)
imp1 <- mice::mice(df, m=3, maxit=5 ) 写下我们的结果:
write.mice.imputation(mi.res=imp1, name="mice_imp1",
include.varnames=TRUE,
long=TRUE, mids2spss=TRUE,
spss.dec=",", dattype=NULL)现在,我们可以加载任何适合您的文件类型。例如,dat文件:
oldData <- read.table("mice_imp1/mice_imp1__LONG.dat")发布于 2021-04-28 05:23:00
est_long <- parlmice(nhanes, cluster.seed = 123, print = FALSE, n.core = 4, n.imp.core = 100) %>%
mice::complete("long")给出
head(est_long)
.imp .id age bmi hyp chl
1 1 1 1 22.0 1 131
2 1 2 2 22.7 1 187
3 1 3 1 27.2 1 187
4 1 4 3 27.2 2 284
5 1 5 1 20.4 1 113
6 1 6 3 20.4 1 184您可以通过将长数据集分解为400个数据集的列表来进行后续操作。
est_long <- parlmice(nhanes, cluster.seed = 123, print = FALSE, n.core = 4, n.imp.core = 100) %>%
mice::complete("long")%>%
group_by(.imp) %>%
nest()
head(est_long)
# A tibble: 6 x 2
# Groups: .imp [6]
.imp data
<int> <list>
1 1 <tibble[,5] [25 × 5]>
2 2 <tibble[,5] [25 × 5]>
3 3 <tibble[,5] [25 × 5]>
4 4 <tibble[,5] [25 × 5]>
5 5 <tibble[,5] [25 × 5]>
6 6 <tibble[,5] [25 × 5]>https://stackoverflow.com/questions/56686248
复制相似问题