gpt4 book ai didi

重新编码鼠标 mids 对象

转载 作者:行者123 更新时间:2023-12-04 12:47:41 24 4
gpt4 key购买 nike

我有一个 midsmice 创建的对象.我想重新编码一些估算变量并保留 mids目的。我知道我可以转换 midscomplete() 反对“长期” ,但我想保留 mids对象,因为它有一些额外的用途。

这是使用 nhanes 的示例数据集。运行 mice()nhanes 中的变量创建 5 个插补数据集.我专注于hyp .

library(mice)
names(nhanes)
nhanes$hyp
#[1] NA 1 1 NA 1 NA 1 1 1 NA NA NA 1 2 1 NA 2 2 1 2 NA 1 1 1
imp <- mice(nhanes, print = FALSE)
imp$imp$hyp
# 1 2 3 4 5
# 1 1 1 1 1 1
# 4 2 1 1 2 2
# 6 1 1 1 1 1
# 10 1 1 1 1 1
# 11 1 1 2 1 1
# 12 1 1 1 1 2
# 16 1 1 2 1 1
# 21 1 1 2 1 1

我怎么能重新编码估算的 hyp mids 中的值对象 imp (例如,1 变为 5)。

到目前为止,我唯一的想法是转换 imp长,将感兴趣的变量提取到新的数据帧中,重新编码,通过 as.mids 转换新的数据帧,然后放回 imp通过 cbind.mids() .
imp_long <- complete(imp, "long", include=T)
hyp <- imp_long[, "hyp"]
hyp2 <- hyp
hyp2[hyp2==1] <- 5
hyp4mids <- data.frame(.imp = rep(0:5, each = nrow(nhanes)),
.id = rep(1:nrow(nhanes), times = 6),
hyp2,
TMP = NA)
hyp4mids <- as.mids(hyp4mids, .imp = 1, .id = 2)
hyp4mids$chainMean <- hyp4mids$chainVar <- array(NA, dim = c(2, 25, 5),
dimnames = list(
c("hyp2", "TMP"),
1:25,
paste0("Chain ", 1:5)))
imp2 <- cbind.mids(imp, hyp4mids)
imp2$imp$hyp2
# 1 2 3 4 5
# 1 5 5 5 5 5
# 4 2 5 5 2 2
# 6 5 5 5 5 5
# 10 5 5 5 5 5
# 11 5 5 2 5 5
# 12 5 5 5 5 2
# 16 5 5 2 5 5
# 21 5 5 2 5 5

它有效,但我认为我应该能够修改 hypimp mids 直接反对。

最佳答案

看来诀窍是修改 $data 和 $imp:

imp <- mice(nhanes, print = FALSE)
l1 <- complete(imp, "long")
table(l1$hyp)
# 1 2
#92 33

imp$data$hyp[imp$data$hyp==1] <- 5
imp$imp$hyp[imp$imp$hyp==1] <- 5
l2 <- complete(imp, "long")
table(l2$hyp)
# 2 5
#33 92

关于重新编码鼠标 mids 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com