這可以很容易如下進行多元插補由鏈式方程 -
使用complete()
轉換一箇中頻對象爲長格式的數據。框架:
long1 <- complete(midsobj1, action='long', include=TRUE)
執行任何操作需要:
long1$new.var <- long1$chl/2
long2 <- subset(long1, age >= 5)
使用as.mids()
到後面操縱的數據轉換爲中頻對象:
midsobj2 <- as.mids(long2)
現在你可以使用midsobj2
要求。請注意,as.mids()
需要include=TRUE
(用於包含缺少值的原始數據)才能正確壓縮長格式的數據。需要注意的是小鼠中之前將有V2.25是在as.mids()中的錯誤函數(看到這個帖子https://stats.stackexchange.com/a/158327/69413)
編輯:根據這一答案https://stackoverflow.com/a/34859264/4269699(從什麼本質上是一個重複的問題),你也可以編輯mids直接通過訪問$ data和$ imp來進行響應。因此,例如
midsobj2<-midsobj1
midsobj2$data$new.var <- midsobj2$data$chl/2
midsobj2$imp$new.var <- midsobj2$imp$chl/2
你會遇到麻煩,但如果你想子集$小鬼或者如果你想使用$調用,所以我不建議一般這種解決方案。
如果你花時間創建一個[最小的,可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a- great-r-reproducible-example)以便我們可以提供特定的代碼建議。這有點過於寬泛,也不具體。 – MrFlick 2014-10-31 03:43:32
@ user20650,它確實將原始數據集存儲在'imput $ data'中,但它與推測數據集是分開的。我剛剛添加了一個例子。 – 2014-10-31 04:01:13
如果你想產生'chl/2',你可以在插補之前計算它。與進行插補時相比,您添加的限制是,當缺少該列的任何插補值等於「chl/2」時 – user20650 2014-10-31 04:02:08