微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何一次重新编码5个合并的Amelia输出中的变量?

如何解决如何一次重新编码5个合并的Amelia输出中的变量?

| 我在R中使用Amelia和Zelig对未清理的变量对我的数据集进行多次插补。可重现的数据集位于Zelig软件包中。
require(Zelig)
require(Amelia)
data(freeTrade)
a.out <- amelia(freeTrade,m = 5,ts = \"year\",cs = \"country\")
我想在5个合并的数据集中重新编码变量,例如:
> polity <- polity-1
是否有任何函数可以自动对5个MI数据集重复5次,而不是分别调用
a.out$imputations[[1]]
a.out$imputations[[2]]
.....,然后进行以下分析。
> z.out <- zelig(tariff ~ polity + pop + gdp.pc + year +
+ country,data = freeTrade,model = \"ls\")
> summary(z.out)
让我知道是否有意义。根据Chase的要求,以上是Zelig的示例。但是我使用了自己的数据集,如下所示:
require(Amelia)
a.out <- amelia(MIV5,m=5,idvars = c(\"STU_ID\",\"SCH_ID\",\"BYSTUWT\",\"BYRACE\",\"F1SES2\",\"F1TxmsTD\",\"F2HsstAT\",\"BYTxmsTD\",\"BYURBAN\",\"BYTXRSTD\",\"BYTXCSTD\",\"BYNELS2M\",\"BYNELS2R\",\"BYNELS0M\",\"BYPISAME\",\"BYPISARE\",\"BYTXMIRR\",\"BYTXMQU\"),noms = c(\"BYSEX\",\"BYSTLANG\",\"F2B07\",\"F2EVRAPP\"),ords= c (\"BYSTEXP\",\"F1SES2QU\"),p2c=0)
现在,我必须重新编码和清除变量,例如将\“ BYRACE \”因子转换为数字\“ race \”,并获得数学得分:
race <- as.numeric(BYRACE)  
mthgn <- F1TxmsTD-BYTxmsTD
谢谢!     

解决方法

a.out$imputations <- lapply(a.out$imputations,transform,polity=polity-1)

a.out$imputations <- lapply(a.out$imputations,function(i) i[,\'polity\'] <- log(i[,\'polity\'])-1)
估算的数据集仅作为列表包含在Amelia对象中。所以lapply()应该可以工作。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。