r - 在 R 中数据框中的列子集上拟合模型
问题描述
我正在尝试在协变量子集上使用 lm() 和 matchit() 。我已经生成了任意数量的带有前缀“covar”的列,即“covar.1”、“covar.2”等。我想做类似的事情
lm(组~协变量,数据=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="+"))))
推荐阅读
- javascript - 如何使用 reactjs 以二进制形式显示来自 mongodb 的图像
- ng-zorro-antd - 将关键字段重命名为 id (NzTreeNodeOptions)
- asp.net - 有没有办法在登录时为 ASP.NET 中的用户显示个性化列表
- django - 如何在 django 管理站点中的管理模型保存功能时向用户发送通知
- ios - 找不到框架 OpenSSL
- laravel - 将页面标题变量传递给布局应用程序视图 Laravel 组件
- powershell - 远程服务器上的 Powershell TLS1.2
- docker - 通过 Docker Compose 安装 Ory Kratos 配置
- embedded-linux - runqemu 命令的默认 Qemu 设置
- rest - 从服务中获取错误“提供的 uri 方案'https'是无效的预期'http”