我需要捕获冒号后的第一个字母:并将其转换为大写。我的意见是:
ID1423:Bellatorias obiri 18 Aug 2006
ID2533:Caretta caretta 16 Jul 2000
ID342:Cyclodomorphus praealtus 24 Dec 2009
ID8777:Dermochelys coriacea 8 Jan 2009
ID922:Egernia stokesii badia 16 Jul 2000
我使用的代码是reptiledata< - gsub(“((\ w)(\ w +)”,“:\ U \ 1”,reptile_data,perl = TRUE)
我得到的输出是这样的:
> reptiledata
[1] "c(:1, :1, :2, 8, :1, :1, :1, :1, :1, :1, :1, :2, 4, :1, :1, :1)"
[2] "c(2, 6, 3, 5, 6, 6, 6, 6, 6, 6, 6, 4, 1, 2, 6, 6)"
etc...
我需要一个通用的gsub代码,它会将冒号后的许多首字母字符转换为大写而不仅仅是显示的字符。谢谢你的帮助!
答案 0 :(得分:3)
尝试在Perl模式下使用gsub
和大写替换修饰符\U
:
gsub(":([A-Za-z])", ":\\U\\1", str, perl=TRUE)
这将替换任何冒号,后跟一个带冒号的单个字母,后跟该字母的大写版本。如果您发现它不会被修改的文本,我们可以使这个模式更具体。