Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hmisc:我如何将reformM的结果作为参数包含在计算中?_R_Hmisc - Fatal编程技术网

Hmisc:我如何将reformM的结果作为参数包含在计算中?

Hmisc:我如何将reformM的结果作为参数包含在计算中?,r,hmisc,R,Hmisc,我正在使用Hmisc包中的aregImpute来插补数据集中缺失的值。由于结果对公式中变量的顺序不是不变的,因此我使用reformM函数生成了许多随机公式排列: reformM(~x1+x2+x3…,数据=d,nperm=Z) 函数返回一个列表 我已经查看了帮助文件,但不清楚如何将结果传递给aregImpute 对象是否可以被传递,从而aregImpute将迭代不同的组合以评估任何变化?也就是说,是否可以将多个排列传递给aregImpute?如果没有,我是否只需使用新的变量顺序创建一个新公式?您

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

reformM(~x1+x2+x3…,数据=d,nperm=Z)

函数返回一个列表

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


对象是否可以被传递,从而
aregImpute
将迭代不同的组合以评估任何变化?也就是说,是否可以将多个排列传递给
aregImpute
?如果没有,我是否只需使用新的变量顺序创建一个新公式?

您当然可以使用
map
reformM
传递到
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)
库(密斯林)
图书馆(tidyverse)
艾瑞丝小姐