检测字符串中的数字

Detect numerics in string

我有以下格式的数据:

January 2015
2014
May 2012
2011
NA

只有年份的地方,我想在它前面插入"December"。但是我不想在"NA"前面插入"December"。我可以知道如何在 R 中执行此操作吗?

您可以尝试以下 sub 功能。

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

^ - 线锚点的开始,有助于匹配存在于线开始处的边界。

\d+ - 匹配一位或多位数字。 () 大约 \d+ 有助于捕获特定的数字字符。您可以使用反向引用在替换部分中引用捕获组中存在的字符。 \1 引用第一个捕获组中存在的字符。

$ - 行尾锚点。所以这个正则表达式将匹配只有数字字符的字符串。

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

\d{4} 正好匹配 4 个数字字符。