带有通配符和多个条件的gsub

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

第一次使用R时,我正在清理书目数据库。其中一列,即我的变量,是一列,其中包含有问题的参考文献所引用的所有参考文献,例如这个:

[ANDREOSSO-O'CALLAGHAN B,2008,PALGRAVE STUD EUR UN,P61。 ALECU DE FLERS N,2005年,欧洲国际关系,P317。 DUCHENE FRANCOIS,1973年,《国家大公报》。 KOH T,2007年,海峡时报0808。LENZ T,2009年,地球政治GEOECONO。 LUCARELLI S,2010年,ROUTL GARN SER EUR W,V7,P1。方式I,2002,J COMMON MARK STUD,V40,P235,DOI 10.1111 / 1468-5965.00353。 NYE J.,2004年,SOFT POWER MEANS SUC。 ORBIE J,2010年,NORMATIVE POWER EURO。 PORTELA C,2007,200710 RSCAS。 ROSECRANCE R.,1998年,PARADOXES EUROPEAN F.SMITH K.E.,2003年,欧洲外企。宋XN,2010,REV INT STUD,V36,P755,DOI 10.1017 / S0260210510000835。 TANAKA T,2008年,PALGRAVE STUD EUR UN,P170。 WARLEIGH-LACK A.,2010年,COMP REGIONAL INTEGR,P43。

我遇到的问题是,本质上相同的引用出现在许多不同的伪装中。在上述情况下,它看起来像这样

  • NYE J.,2004,软件力量手段成功。

在其他情况下,看起来像这样:

  • NYE J.,2004,软实力:成功实现世界政治的手段,纽约:公共事务

此参考资料至少有30个不同的唯一版本。我可以通过作者姓名-NYE J.,2004年出版的年份以及提及“成功的手段”来在数据库中识别它们。所以我的想法是使用gsub函数,该函数将在该列的分隔符(一个点和两个空格)内搜索这些参数,然后将整个表达式替换为

  • NYE J.,2004,软实力:成功实现世界政治的手段,纽约:公共事务

[现在,我已经可以做简单的gsub了,因此我设法用NYE J.代替了Nye先生的所有变体,但是我通过手动搜索所有变体来做到这一点,现在不再可行。我基本上想这样做:

help2 <- within(help2, { values <- gsub (x= CR, pattern = "NYE J., 2004,*means to suc*.  ", replacement = "NYE J., 2004, SOFT POWER: THE MEANS TO SUCCESS IN WORLD POLITICS, NEW YORK: PUBLICAFFAIRS")})

我知道通配符在R中的工作方式不同,但是我无法弄清楚需要更改什么。有人知道吗?谢谢!最好的祝福,Steffi

r regex wildcard gsub
1个回答
1
投票

您的代码可以是以下内容:

© www.soinside.com 2019 - 2024. All rights reserved.