我的数据格式为字符向量:
"2014-03-27 11:42:32" "2014-04-03 07:13:28" "0000-00-00 00:00:00" "2012-04-16 12:46:03"
[5] "0000-00-00 00:00:00" "0000-00-00 00:00:00" "2014-04-23 09:33:23" "2014-04-30 06:31:54"[9] "2012-04-18 09:55:44" "2013-11-20 14:43:11"
Run Code Online (Sandbox Code Playgroud)
我想做的是使用一年中的单个数字.2014年的IE sub 4,2013年的3,2012的2,以及0000-00的1 ...除了代表年份的单个数字,我想删除所有其他数字和字符.
我知道我可以使用正则表达式gsub(pattern="2014", replacement="4", logVector)或某些变体来完成我的任务,但我并不精通正则表达式.有人能够提供语法方面的帮助吗?
这就是你需要的:
sub("^\\d{3}(\\d).*", "\\1", subject, perl=TRUE);
Run Code Online (Sandbox Code Playgroud)
我们需要捕获一年中的最后一位数字,然后用该数字替换整个字符串.
说明
^锚断言,我们是在字符串的开头\d{3} 匹配三位数(\d) 匹配第四个数字并将其捕获到第1组.* 匹配到字符串的结尾\1 用组1替换整个字符串,这是最后一位数.