Error in `matchit()`: ! Missing and non-finite values are not allowed in the covariates. Covariates with missingness or non-finite values: age, resident Run `rlang::last_trace()` to see where the error occurred.怎么解决
时间: 2023-12-03 09:44:31 浏览: 496
vim-textobj-matchit:多行Matchit对的Vim文本对象
这个错误是由于在调用 R 中的 `matchit()` 函数时,其中的某些协变量(covariate)中存在缺失值或非有限值(non-finite values)导致的。因此,你需要先处理这些缺失值或非有限值,然后再执行 `matchit()`。
一种常见的方法是使用 R 中的函数 `complete.cases()`,该函数可以删除包含缺失值的行。你可以按照以下步骤进行:
1. 创建一个新的数据框,只包含你需要的协变量,并删除其中的缺失值:
```r
df <- data.frame(age = c(25, 30, NA, 35, 40),
resident = c(1, 0, 1, NA, 0),
treatment = c(0, 1, 0, 1, 0))
df <- df[complete.cases(df), ]
```
2. 然后,你可以调用 `matchit()` 函数,将新数据框中的协变量作为参数传入:
```r
library(Matching)
m.out <- matchit(treatment ~ age + resident, data = df)
```
这样就可以避免 `matchit()` 函数中的错误了。
阅读全文