Hmisc:我如何将reformM的结果作为aregImpute的参数?

时间:2020-05-23 10:26:50

标签: r hmisc

我正在使用aregImpute包中的Hmisc来估算数据集中的缺失值。由于结果并不是公式中变量的顺序不变,因此我使用了reformM函数来生成许多随机公式排列:

reformM(~ x1 + x2 + x3..., data = d, nperm = Z)

该函数返回一个列表。

我已经查看了帮助文件,但不清楚如何将结果传递到aregImpute

是否可以通过传递对象,使得aregImpute将遍历不同的组合以评估任何可变性?也就是说,可以将多个排列传递给aregImpute吗?如果没有,我是否只是使用新的变量顺序创建一个新公式?

1 个答案:

答案 0 :(得分:1)

您当然可以使用mapreformM传递给aregImpute。下面,我提供一个最小的示例。就是说,我确实认为最好对变量进行重新排序,以便首先插补数据丢失率较高的变量。

library(missForest)
library(tidyverse)
iris_miss <- prodNA(iris,0.10)  ## make every variable missing at 10% 
## factorial(ncol(iris_miss))  ## number of possible permutations
permlist <- reformM( as.formula(paste(" ~ ", names(iris_miss) %>% str_flatten( " + "))), data=iris_miss, nperm=10 ) ## get 10 permutations 
map(permlist, aregImpute, nk=3, n.impute=5, data= iris_miss)