R语言 从身份码中提取一些以特定数字开头的数字

d8tt03nd  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(194)

我想从身份代码中识别出生年份,例如:

test <- c("1234195212345600", "123419531234561","1234195412345689878")

预期结果是提取四个以19开头的数字。最终结果如下所示:

test_results <- c("1952", "1953", "1954").

我试过:

str_extract(test, "19[0-9][0-9]")

它给了

NA NA NA
bvhaajcl

bvhaajcl1#

regmatchesregexprgregexpr一起使用。后者对于消歧很有用。

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")

相关问题