尊敬的stackoverflow用户,
许多人遇到需要修改字符串的情况。我看过很多有关字符串修改的文章。但是,我还没有遇到想要的解决方案。我相信我的文章对其他将面临类似挑战的R用户很有用。我想从熟悉字符串修改的R用户那里寻求帮助。
我一直在尝试修改如下所示的字符串。
x <- "Marcus HELLNERJohan OLSSONAnders SOEDERGRENDaniel RICHARDSSON"
此字符串中有四个人。姓氏用大写字母表示。四分之三的姓氏与名字(例如HELLNERJohan)混在一起。我想将姓氏和名字分开,以增加空格(例如,HELLNER Johan)。
我认为我需要声明“选择大写字母序列,如果后面有小写字母,则在最后一个和第二个大写字母之间添加空格”。
以下帖子可能有些相关,但是我尚未成功编写代码。
非常感谢您的大力支持。
这是通过查找并捕获两个连续的子模式来实现的,第一个子模式由一个大写字母(姓氏的结尾)组成,第二个子模式由一个大写字母然后一个小写字母(用来表示字母的开头)组成名字)。找到这两个组的任何地方,它们都会被捕获并被它们自己替换,并在它们之间插入一个空格("\\1 \\2"
在下面的调用中)。
x <- "Marcus HELLNERJohan OLSSONAnders SOEDERGRENDaniel RICHARDSSON"
gsub("([[:upper:]])([[:upper:]][[:lower:]])", "\\1 \\2", x)
# "Marcus HELLNER Johan OLSSON Anders SOEDERGREN Daniel RICHARDSSON"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句