我正在使用hot.deck软件包在R中进行热甲板插补,并按照此处描述的示例进行测试:https://cran.r-project.org/web/packages/hot.deck/vignettes/Using_Hot_Deck_Data.pdf
数据集是数据(isq99)。我将跳过创建的其他变量,并讨论热门结果。这是完全我做过的事情:
library(hot.deck)
data(isq99)
out <- hot.deck(isq99, sdCutoff=3, IDvars=c("IDORIGIN","YEAR"))
我坚持在p上使用mids技术组合结果。 3(2.3“使用中频” - 我知道它说的是$ imputations但是如果你转换为amelia那就是:)
library(miceadds)
out.mids <- datalist2mids(out$data)
当我这样做时,我收到以下错误消息:
Warning message:
In if (class(dat.list) %in% "imputationList") { :
the condition has length > 1 and only the first element will be used
如果我查看原始热门结果的结构,会发生什么:
Length Class Mode
data 5 mi list
affinity 14775370 -none- numeric
donors 4661 -none- list
draws 4661 -none- list
max.emp.aff 4661 -none- numeric
max.the.aff 4661 -none- numeric
我不知道为什么它拒绝输出$ data(正如预期的那样有多个插补数据的5个版本) - 我是否应该先知道如何将长度减少为单个集合?
感谢任何帮助。道歉:格式化或者如果我忘记了什么 - 请告诉我你还需要什么。
感谢
答案 0 :(得分:1)
这看起来像 miceadds 包/函数作者的一个错误,而不是预期一个对象可以有多个类(或者只是向后写%in%
个调用)而不是事先检查dat.list
参数中给出的对象。无论哪种方式,%in%
都不是检查课程的正确方法。 CRAN来源是datalist2mids.R。我会使用maintainer("miceadds")
中的电子邮件地址提交错误报告。
答案 1 :(得分:1)
Per @ Richard的建议,我写信给了老鼠的维护者,他尽快回复,我非常感谢。
原来这只是一个警告,而不是一个bug,并且mids对象确实已经生成了。这对我来说是一个彻头彻尾的禁区疏忽。 mouseadds作者确实注意到他可能会在未来版本的软件包中更改/删除警告。