【发布时间】:2021-04-14 12:44:24
【问题描述】:
我有一个大列显示一个字符串,例如:
20-1843PA-HY-4563-214DF
“20”是世纪,“18”是年份。使用函数提取这两者并在 R 中输出 2018 的最简单方法是什么?
【问题讨论】:
我有一个大列显示一个字符串,例如:
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
str1 <- "20-1843PA-HY-4563-214DF"
【讨论】:
我会这样做:
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
【讨论】: