You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何在公式里选择所有以c_为前缀的列?

R 批量选取c_前缀变量构造多段公式的方法

下面是几种不同场景下的实现方案:

通用基础方案(无额外依赖)

不需要加载任何第三方包,适用于所有支持公式输入的R函数:

  1. 先从数据框列名中筛选所有以c_开头的变量
# 正则^c_表示严格匹配字符串开头为c_的内容
c_vars <- grep("^c_", names(df), value = TRUE)
  1. 拼接成你需要的三段式公式
my_formula <- as.formula(
  paste0(
    "y ~ ", 
    paste(c("a", "b", c_vars, "d", "e"), collapse = " + "),
    " | f | ",
    paste(c_vars, collapse = " + ")
  )
)

生成的my_formula和你手动写的公式效果完全一致,可以直接传入回归函数使用。

Tidyverse 生态适配方案

如果你已经在使用dplyr等tidyverse工具,可以用更易读的语义化函数匹配变量:

library(dplyr)
c_vars <- df %>% select(starts_with("c_")) %>% names()
# 后续公式拼接逻辑和通用方案一致

Fixest 包专属最优方案

如果你是用fixest包做面板回归(这类三段式公式是fixest的典型用法),可以直接在公式内用内置的正则匹配语法,不需要提前提取变量:

my_formula <- y ~ a + b + c("^c_") + d + e | f | c("^c_")

这是该场景下最短的实现方式,fixest会自动从传入的数据框中匹配所有符合正则的变量。

内容的提问来源于stack exchange,提问作者robertspierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:54:01