使用 gsub 删除模式后面和分号之前的文本

问题描述 投票:0回答:1

在下面的示例中,我想删除 FAPESP 和 CNPq 之后的所有内容并保留其他所有内容:

"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"

我需要以下结果:

"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"

由于我正在处理大型数据框,因此我无法使用简单的函数(例如,

df$Funding <- gsub(", (2015/07311-7, 2018/03211-6) ", "", df$Funding)
r gsub
1个回答
0
投票

我认为您没有提到您的文本是用分号分隔的,并且您需要保留所有组件(以及重要的事情)。

paste(sub("(FAPESP|CNPq).*", "\\1", unlist(strsplit(have, ";"))), collapse = ";")
# [1] "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"
identical(paste(sub("(FAPESP|CNPq).*", "\\1", unlist(strsplit(have, ";"))), collapse = ";"), want)
# [1] TRUE

数据

have <- "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"
want <- "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"
© www.soinside.com 2019 - 2024. All rights reserved.