R 从字符串中提取世纪和年份

R 从字符串中提取世纪和年份,r,string,function,R,String,Function,我有一个显示字符串的大列,例如: 20-1843PA-HY-4563-214DF “20”是世纪,而“18”是年。使用函数提取这两个数字并在R中输出2018的最简单方法是什么?我们可以使用sub从字符串的开始(^)和-捕获两个数字((\\d{2}))并替换为捕获组的反向引用(\\1\\2) f1 <- function(nm) as.numeric(sub("^(\\d+)-(\\d{2}).*", "\\1\\2", nm)) f1(str1) #

我有一个显示字符串的大列,例如:

20-1843PA-HY-4563-214DF


“20”是世纪,而“18”是年。使用函数提取这两个数字并在R中输出2018的最简单方法是什么?

我们可以使用
sub
从字符串的开始(
^
)和
-
捕获两个数字(
(\\d{2})
)并替换为捕获组的反向引用(
\\1\\2

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

f1我们可以使用
sub
从字符串的开头(
^
)开始捕获数字作为一个组,然后捕获两个数字(
(\\d{2}
),并替换为所捕获组的反向引用(
\\1\\2

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

f1我会这样做:

chr_collumn<-"20-1843PA-HY-4563-214DF"
chr_collumn<-strsplit(chr_collumn,"-")
chr_collumn<-unlist(chr_collumn)[1:2]
chr_year<-paste0(chr_collumn[1],strtrim(chr_collumn[2],width=2))
chr_year<-as.numeric(chr_year)
chr_year

chr\u collumn我会这样做:

chr_collumn<-"20-1843PA-HY-4563-214DF"
chr_collumn<-strsplit(chr_collumn,"-")
chr_collumn<-unlist(chr_collumn)[1:2]
chr_year<-paste0(chr_collumn[1],strtrim(chr_collumn[2],width=2))
chr_year<-as.numeric(chr_year)
chr_year
chr\u collumn