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

使用gsub移除指定标识后至分号前的文本(R语言)

R语言批量清理Funding字段的通用方法

针对大数据框中Funding字段的清理需求,我们可以用**正则表达式配合gsub**实现通用处理,无需指定具体资助编号内容,效率足以覆盖大数据量场景。

核心思路

匹配FAPESP或CNPq缩写后,移除从逗号开始到下一个分号前的所有冗余内容,仅保留机构缩写本身。

代码实现

# 示例字符串测试
funding_example <- "105 Group Science; Fundação de Amparo à Pesquisa do Estado de São Paulo, FAPESP, (2015/07311-7, 2018/03211-6); Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, CAPES; Conselho Nacional de Desenvolvimento Científico e Tecnológico, CNPq, (407543/2018-0, 420699/2018-0); Fundação Araucária; Ministry of Science and Technology, Taiwan, MOST"

# 单个字符串清理
cleaned_funding <- gsub("\\b(FAPESP|CNPq),[^;]+", "\\1", funding_example)
# 输出结果:"105 Group Science; Fundação de Amparo à Pesquisa do Estado de São Paulo, FAPESP; Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, CAPES; Conselho Nacional de Desenvolvimento Científico e Tecnológico, CNPq; Fundação Araucária; Ministry of Science and Technology, Taiwan, MOST"

# 处理大数据框的Funding字段
df$Funding <- gsub("\\b(FAPESP|CNPq),[^;]+", "\\1", df$Funding)

正则表达式说明

  • \\b:单词边界,确保匹配独立的FAPESP/CNPq,避免误匹配包含这些字符的其他字符串
  • (FAPESP|CNPq):捕获组,匹配两个目标机构缩写中的任意一个,后续通过\\1引用保留该内容
  • ,[^;]+:匹配逗号后到下一个分号前的所有非分号字符,实现精准移除冗余信息

扩展性

如果后续需要处理更多类似的机构缩写,只需在捕获组中添加即可,例如:

df$Funding <- gsub("\\b(FAPESP|CNPq|CAPES),[^;]+", "\\1", df$Funding)

内容的提问来源于stack exchange,提问作者always.learning

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:28:26