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

R语言如何基于字符串列表生成适配特征集的回归公式

R生成符合需求的回归公式解决方案(基于dplyr)

完整可运行代码

library(dplyr)
library(stringr)

# 原始变量定义
n <- 'winner'
p_list <- c('qualified', 'female', 'apple')
df_features <- c('female','qualified','admission','apple_B','apple_C','apple_D')

# 步骤1:生成特征-前缀映射表
feature_mapping <- tibble(feature = df_features) %>%
  # 提取下划线前的前缀,无下划线的特征前缀为自身
  mutate(prefix = str_remove(feature, "_.*"))

# 步骤2:匹配p_list对应的所有自变量
final_predictors <- p_list %>%
  lapply(function(item) {
    filter(feature_mapping, prefix == item) %>% pull(feature)
  }) %>%
  unlist() %>%
  unique() # 避免重复变量进入公式

# 步骤3:生成回归公式
reg_formula <- as.formula(paste(n, "~", paste(final_predictors, collapse = " + ")))

输出验证

打印reg_formula即可得到你需要的结果:

winner ~ female + qualified + apple_B + apple_C + apple_D

逻辑说明

  • 无需单独判断p_list元素是否存在于df_features:对于本身就在特征列表里的变量(如female、qualified),前缀匹配只会取出变量本身,不会产生多余结果;对于需要前缀匹配的变量(如apple),会自动取出所有前缀匹配的特征。
  • 如果需要和示例完全一致的自变量顺序,可以在pull(feature)后增加%>% sort()调整排序。
  • 若需使用tidyverse风格的迭代语法,可将lapply替换为purrr::map,效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:45:03