在下面的示例中,我想删除 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)
我认为您没有提到您的文本是用分号分隔的,并且您需要保留所有组件(以及重要的事情)。
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"