检测字符串

时间:2015-07-08 08:51:31

标签: r string insert expression

我的数据格式如下:

January 2015
2014
May 2012
2011
NA

只要有一年,我想在其前面插入“十二月”。但我不想在“NA”面前插入“十二月”。我可以在R中知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试以下sub功能。

sub("^(\\d+)$", "December \\1", df$x)

^ - 线锚的起点,有助于匹配线起点处的边界。

\\d+ - 匹配一个或多个数字。 ()周围的\\d+有助于捕获特定的数字字符。您可以使用backrefernce在替换零件中引用捕获组内存在的字符。 \\1指的是第一个捕获组内存在的字符。

$ - 线锚的结束。因此,这个正则表达式将匹配只有数字chraacters的字符串。

sub("^(\\d{4})$", "December \\1", df$x)

\\d{4}恰好匹配4位字符。