我想从身份代码中识别出生年份,例如:
test <- c("1234195212345600", "123419531234561","1234195412345689878")
预期结果是提取四个以19开头的数字。最终结果如下所示:
test_results <- c("1952", "1953", "1954").
我试过:
str_extract(test, "19[0-9][0-9]")
它给了
NA NA NA
bvhaajcl1#
将regmatches与regexpr或gregexpr一起使用。后者对于消歧很有用。
regmatches
regexpr
gregexpr
regmatches(test, regexpr('19\\d{2}', test)) # [1] "1952" "1953" "1954" "1919" regmatches(test, gregexpr('19\\d{2}', test)) # [[1]] # [1] "1952" # # [[2]] # [1] "1953" # # [[3]] # [1] "1954" # # [[4]] # [1] "1919" "1952" # # [[5]] # character(0)
test <- c("1234195212345600", "123419531234561","1234195412345689878", "19191952", "12121212")
1条答案
按热度按时间bvhaajcl1#
将
regmatches
与regexpr
或gregexpr
一起使用。后者对于消歧很有用。