You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何从长度可变的字符串末尾提取最后3个字符?

提取字符向量最后3个字符的几种简便方法

针对你给出的字符向量:

vec <- c("1ZQOYNBAA55", "2JSNHGKLRBB66", "3HVXCC77", "4LDD88", "5CIFMTLYXEE99")

以下是几种无需依赖固定字符串长度的实现方式:

方法1:Base R 结合 nchar 和 substr

利用nchar()获取每个字符串的长度,计算出提取的起始位置(总长度减2),再用substr()提取:

vec_ends <- substr(vec, nchar(vec) - 2, nchar(vec))
# 输出结果
vec_ends
# [1] "A55" "B66" "C77" "D88" "E99"

方法2:stringr 包的 str_sub(推荐)

stringr 包的str_sub()支持负索引(从末尾计数),直接指定起始位置为-3即可:

# 先安装/加载包
# install.packages("stringr")
library(stringr)

vec_ends <- str_sub(vec, start = -3)
vec_ends
# [1] "A55" "B66" "C77" "D88" "E99"

方法3:Base R 正则表达式

用sub()匹配任意字符直到最后3个,替换为捕获到的最后3个字符:

vec_ends <- sub(".*(.{3})$", "\\1", vec)
vec_ends
# [1] "A55" "B66" "C77" "D88" "E99"

内容的提问来源于stack exchange,提问作者Roasty247

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:25:39