我正在使用 Amelia 为每个缺少数据的变量生成五个新的假设数据集。现在,我想在插补后创建新变量。
可重现的数据集位于 Zelig 包中。
require(Zelig)
require(Amelia)
data(freetrade)
year country tariff polity pop gdp.pc ...
1 1981 SriLanka NA 6 14988000 461.0236
2 1982 SriLanka NA 5 15189000 473.7634
3 1983 SriLanka 41.3 5 15417000 489.2266
使用Amelia II创建 5 个估算数据集
a.out <- amelia(freetrade, m=5, ts="year", cs="year")
转换插补变量
我学会了如何创建插补变量的转换以供进一步分析使用,参见 4.8。在手册中。例如:
a.out<-transform(a.out, pol_gdp = polity * gdp-pc)
a.out<-transform(a.out, pol.gdp = polity / gdp)
head(a.out$imputations[[1]])
year country tariff polity pop gdp.pc ... pol_gdp pol.gdp
1 1981 SriLanka 39.55176 6 14988000 461.0236 2766.142 0.013014518
2 1982 SriLanka 55.70500 5 15189000 473.7634 2368.817 0.010553791
3 1983 SriLanka 41.30000 5 15417000 489.2266 2446.133 0.010220214
...
问题
我不知道如何根据另一个变量中的值创建一个新变量。也就是说,通常我会使用 if-else 参数,但它在 Amelia 中不起作用。
a.out$imputations$new.var<-ifelse(a.out$imputations$polity==5,1,0)
任何想法将不胜感激!
非常感谢。