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

R data.frame如何提取字符串列中首个$与[之间的特定模式文本

实现方案

你可以通过正则匹配提取目标字段,以下是两种常用实现方式:

1. 构造示例数据

df <- structure(list(variables = c("data$Ageee[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$var[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$variable_test[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]"
), values = c(0, 0, 0)), class = "data.frame", row.names = c(NA,
-3L))

2. 基础R实现(无需安装额外包)

使用sub()函数结合正则替换,直接提取第一个$和第一个[之间的内容:

df$variables <- sub("^[^$]+\\$([^[]+)\\[.*", "\\1", df$variables)

3. stringr包实现(语法更直观)

如果你习惯使用tidyverse生态的工具,可以用stringr::str_extract()搭配环视正则直接匹配目标内容:

# 如未安装包先执行 install.packages("stringr")
library(stringr)

df$variables <- str_extract(df$variables, "(?<=\\$)[^[]+(?=\\[)")

运行以上任意一种方案后,得到的df结构就和你要求的输出完全一致。


内容的提问来源于stack exchange,提问作者Nuñes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:15:04