r - 如何从文件中导入保存的鼠标/中间对象
问题描述
我正在寻找一种将鼠标对象导出到文件的方法,以便将来可以将其加载回来以进行进一步分析。我找到了一些关于使用miceadds::write.mice.imputation 将数据保存到本地文件的信息。我还在Exporting multiple imputed objects with MICE中找到了类似的帖子,但该帖子中接受的答案并没有真正解决问题,write.mice.imputation 可以将估算数据、变量列表等保存到文件中,但确实如此不保存重建老鼠对象的信息。
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 只是数据而不是鼠标对象。
解决方案
一方面,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
。
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)
推荐阅读
- json - 将每个值存储到从 JSON 返回的变量中
- python-3.x - 如何填充时间序列数据框直到月底
- swift - UITextView 多行拼写问题 - Swift
- python - 在 python 中使用 zip() 从 for 循环中绘制元组
- while-loop - 为什么 Octave 在这个基本的 while 循环中会出现语法错误?
- powerbi - 带有嵌入式 PowerApp 的 PowerBI - 无法编辑
- laravel - Laravel 路由根在我的服务器中不起作用
- rust - 无法调用返回结果的函数:发现不透明类型 impl std::future::Future
- javascript - 如何通过在不存在时检查插入来使用节点 js 在 MySQL 中插入多条记录?
- python - Python:更快地在循环中调用函数