第一次使用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。
我遇到的问题是,本质上相同的引用出现在许多不同的伪装中。在上述情况下,它看起来像这样
在其他情况下,看起来像这样:
此参考资料至少有30个不同的唯一版本。我可以通过作者姓名-NYE J.,2004年出版的年份以及提及“成功的手段”来在数据库中识别它们。所以我的想法是使用gsub函数,该函数将在该列的分隔符(一个点和两个空格)内搜索这些参数,然后将整个表达式替换为
[现在,我已经可以做简单的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
您的代码可以是以下内容: