Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
304 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 Answer

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"

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...