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

在R语言中提取数据框列内%%分隔符之间的信息

提取R数据框中%%分隔符间的内容到指定列

需求说明

从数据框df的information列中,批量提取位于两组%%分隔符之间的文本,替换empty列的原有值。

示例数据

empty <- c('NA', 'NA')
information <- c('notimportant%%information%%morenotimportant', 'ignorethis%%wanted%%notthiseither')
df <- data.frame(information, empty)

解决方案

方法1:使用基础R的sub()函数

无需额外安装包,直接通过正则表达式实现:

# 提取%%之间的内容并更新empty列
df$empty <- sub(".*%%(.*)%%.*", "\\1", df$information)
  • 正则逻辑:.*%%匹配第一组%%之前的所有内容,(.*)捕获两组%%之间的目标文本,%%.*匹配第二组%%之后的所有内容;\\1引用捕获到的目标文本完成替换。

方法2:使用stringr包(语法更直观)

stringr的字符串处理函数更简洁,适合快速实现需求:

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

# 提取目标内容
df$empty <- str_extract(df$information, "(?<=%%).*?(?=%%)")
  • 正则逻辑:(?<=%%)是正向后顾,确保目标文本前存在%%;.*?是非贪婪匹配,避免捕获多余内容;(?=%%)是正向前瞻,确保目标文本后存在%%,精准定位两组分隔符之间的内容。

处理后结果

执行任意一种方法后,df的empty列将更新为预期值:

print(df)
#                              information      empty
# 1 notimportant%%information%%morenotimportant information
# 2       ignorethis%%wanted%%notthiseither      wanted

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:25:19