Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/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
R不能根据公式生成倾向得分;没有错误也没有计算_R - Fatal编程技术网

R不能根据公式生成倾向得分;没有错误也没有计算

R不能根据公式生成倾向得分;没有错误也没有计算,r,R,我想在多次插补后做倾向评分,但我认为R是错误的,尽管没有显示错误 加载包“cobalt”时,有一个合并的数据集:lalonde_mis,我们将在本例中使用它 多重插补数据如下: library(mice) library(cobalt) library(MatchIt) data(lalonde_mis) m <- 10 imp <- mice(lalonde_mis, m = m, print = FALSE) imp.data <- complete(imp, "lo

我想在多次插补后做倾向评分,但我认为R是错误的,尽管没有显示错误

加载包“cobalt”时,有一个合并的数据集:lalonde_mis,我们将在本例中使用它

多重插补数据如下:

library(mice)
library(cobalt)
library(MatchIt)
data(lalonde_mis)

m <- 10 
imp <- mice(lalonde_mis, m = m, print = FALSE) 
imp.data <- complete(imp, "long", include = FALSE)
imp.data <- imp.data[with(imp.data, order(.imp, .id)),]

问题是
鼠标
将其
complete()
输出中
因子
imp
变量类型更改为
数值
。因此,它没有级别,
levels(imp.data$.imp)
返回
NULL
,因此循环永远不会运行。将
级别
替换为
唯一
,这将修复错误。我将在下一版本中更新
cobalt
vignette以反映这一点。

我无法复制您的问题
str(imp.data)
给了我例如
$ps:num 0.6562 0.0414 0.2416 0.7396 0.7448…
你使用的是什么版本的R/RStudio,可能是问题所在?我有3.4.3。您应该在问题中报告您的
sessionInfo()
。如果是R版本导致了这个问题,我会感到惊讶。我也尝试过Rstudio和其他R版本,但它不起作用;甚至尝试重新安装这两个程序。在原始帖子中编辑了sessionInfo()!sessionInfo()与您的有很大不同吗?无法使用
R版本3.3.2(2016-10-31)
MatchIt_3.0.1
cobalt_2.1.0
mice_2.30
imp.data$ps <- imp.data$match.weight <- rep(0, nrow(imp.data))
for (i in levels(imp.data$.imp)) {
    in.imp <- imp.data$.imp == i
    imp.data$ps[in.imp] <- glm(treat ~ age + educ + race + 
                                   married + nodegree +
                                   re74 + re75, 
                               data = imp.data[in.imp,], 
                               family = "binomial")$fitted.values
    m.out <- matchit(treat ~ ps, data = imp.data[in.imp,], 
                     distance = imp.data$ps[in.imp])
    imp.data$match.weight[in.imp] <- m.out$weights
}
imp.data$ps <- imp.data$match.weight <- rep(0, nrow(imp.data))
for (i in levels(imp.data$.imp)) {
    in.imp <- imp.data$.imp == i
    imp.data$ps[in.imp] <- glm(treat ~ age + educ + race + 
                                   married + nodegree +
                                   re74 + re75, 
                               data = imp.data[in.imp,], 
                               family = "binomial")$fitted.values}
R version 3.4.4 (2018-03-15)
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base