如何一次重新编码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()应该可以工作。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...