如何在R语言中提取"U.S. LEXIS"前的四位年份字符?
在R中提取四位年份数字的方法
针对你给出的示例字符串 x <- "2009 U.S. LEXIS",这里有几种实用的方法可以提取其中的四位年份数字:
方法一:用stringr包快速匹配(推荐)
如果你常用tidyverse工具链,stringr包的字符串处理函数会很顺手。用str_extract搭配正则表达式就能精准定位四位数字:
# 先安装并加载包(首次使用需要安装) # install.packages("stringr") library(stringr) x <- "2009 U.S. LEXIS" year <- str_extract(x, "\\d{4}") print(year) # 输出结果: "2009"
这里的\\d{4}是正则表达式语法,代表匹配连续4个数字,刚好对应我们要提取的年份。
方法二:基础R原生实现(无需额外包)
要是不想加载第三方包,用基础R的regmatches和regexpr组合也能完成任务:
x <- "2009 U.S. LEXIS" year <- regmatches(x, regexpr("\\d{4}", x)) print(year) # 输出结果: "2009"
方法三:按空格分割(仅适用于固定格式)
因为你的目标格式是四位数字年份 + 空格 + "U.S. LEXIS",还可以直接按空格分割字符串,取第一个元素:
x <- "2009 U.S. LEXIS" year <- strsplit(x, " ")[[1]][1] print(year) # 输出结果: "2009"
这个方法更直接,但只适合严格符合该格式的字符串;如果后续字符串格式有变化,正则匹配的方法通用性会更强。
内容的提问来源于stack exchange,提问作者sli1991
相关产品推荐
相关产品推荐

