gpt4 book ai didi

r - 如何从文件中导入保存的 mice/mids 对象

转载 作者:行者123 更新时间:2023-12-05 06:49:22 25 4
gpt4 key购买 nike

我正在寻找一种将 mice 对象导出到文件的方法,以便将来可以将其加载回来进行进一步分析。我找到了一些关于使用 miceadds::write.mice.imputation 将数据保存到本地文件的信息。我还在 Exporting multiple imputed objects with MICE 中找到了类似的帖子但是该帖子中接受的答案并没有真正解决问题,write.mice.imputation 可以将估算的数据、变量列表等保存到文件中,但它不会保存重建 mice 对象的信息。

library(mice)
library(miceadds)

imp <- mice::parlmice(data=nhanes, n.core = 4, n.imp.core = 1, m=3, maxit = 50, print=T)
write.mice.imputation(mi.res=imp, name="mice_imp1")

我看到在本地创建了 mice_imp1 文件夹,其中还保存了一些数据。但是使用下面的代码加载数据并没有重新生成mice对象

library(mice)
library(miceadds)

oldData <- read.table("mice_imp1/mice_imp1__IMPDATA1.dat")
stripplot(oldData, pch=20, cex=2) # this line gives error

最后一行无法编译,因为 oldData 只是数据而不是 mice 对象。

最佳答案

一方面,write.mice.imputation 将多个估算数据集的每一个存储在 .dat 文件中,另一方面,它存储 “mids”对象作为 .Rdata 文件。当您想要后者时,您加载了前者。

library(mice)
library("miceadds")

impdir <- "./mice_imp1"
imp <- mice::parlmice(data=nhanes, n.core=4, n.imp.core=1, m=3, maxit=50, print=T)
write.mice.imputation(mi.res=imp, name=impdir, mids2spss=F)
ls() ## whats in the wrkspace?
# [1] "imp" "impdir"
rm(imp) ## remove the mice data

查看存储了哪些对象的目录,我们可能需要 mice_imp1.Rdata 文件,

file.info(list.files("./mice_imp1", full.names=T))[,1, drop=F]
# mice_imp1/mice_imp1.Rdata 14105
# mice_imp1/mice_imp1__DATALIST.Rdata 734
# mice_imp1/mice_imp1__IMP_LIST.txt 108
# mice_imp1/mice_imp1__IMP_SUMMARY.txt 3875
# mice_imp1/mice_imp1__IMPDATA1.dat 365
# mice_imp1/mice_imp1__IMPDATA2.dat 363
# mice_imp1/mice_imp1__IMPDATA3.dat 363
# mice_imp1/mice_imp1__IMPDATA4.dat 365
# mice_imp1/mice_imp1__IMPMETHOD.csv 37
# mice_imp1/mice_imp1__LEGEND.txt 20
# mice_imp1/mice_imp1__LONG.dat 1878
# mice_imp1/mice_imp1__PREDICTORMATRIX.csv 70
# mice_imp1/mice_imp1__VARNAMES.txt 20

我们可以加载

load("mice_imp1/mice_imp1.Rdata")
ls()
# [1] "impdir" "mi.res"

它作为 "mi.res""mids" 出现,

class(mi.res)
# [1] "mids"

并且可以绘制。

stripplot(get("mi.res"), pch=20, cex=2)

enter image description here

关于r - 如何从文件中导入保存的 mice/mids 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66609504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com