我正在尝试对协变量的子集使用 lm() 和 matchit() 。我生成了任意数量的带有前缀“covar”的列,即“covar.1”、“covar.2”等。我想做类似的事情
lm(组~covars,数据=df)
其中 covars 是字符串 c("covar.1", "covar.2", ...) 的向量。
我尝试了几件事,例如
cols <- colnames(df)
covars <- cols[grep("covar", colnames(df))]
m.out <- matchit(group ~ covars, data=df, method="nearest", distance="logit", caliper=.20)
但是得到了variable lengths differ (found for 'covars')
。
仅使用 covars 和 group 定义新数据框可以工作,但这违背了我的目的,matchit
因为我希望匹配的数据也有其他列,而不仅仅是我选择的 covars 匹配。
这似乎是一项简单的任务,但不知何故,我在谷歌搜索后无法弄清楚。不确定 R 公式期望在那里作为列的子集。任何帮助表示赞赏。
您可能想要使用as.formula
.
尝试这样做:
代替 group ~ covars
和 as.formula(paste('group','~', paste(covars, collapse="+"))))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句