Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
346 views
in Technique[技术] by (71.8m points)

r - Extracting century and year from a string

I have a large column displaying a string such as:

20-1843PA-HY-4563-214DF

The "20" is the century while the "18 is the year. What is the simplest way to extract these two using a function and have an output of 2018 in R?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

We can use sub to capture the digits as a group from the start (^) of the string followed by the -, then capture the two digits ((\d{2})) and replace with the backreference (\1\2) of the captured group

f1 <- function(nm) as.numeric(sub("^(\d+)-(\d{2}).*", "\1\2", nm))
f1(str1)
#[1] 2018

data

str1 <- "20-1843PA-HY-4563-214DF"

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...