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

如何从下划线分隔的复杂ID中提取第三段元素作为绘图标签

R 语言实现方案

以下两种实现方式都可以直接完成需求:

方法1:仅用基础 R 函数实现(无需安装额外包)

  • 先将你的所有ID字符串存储为一个字符向量,示例如下:
    ids <- c("3_K97_T12_High_2_Apples", "4_K98_T13_Low_3_Bananas", "5_K99_T14_Mid_1_Oranges")
  • 调用strsplit按下划线分割字符串,遍历提取每个分割结果的第3段即可:
# 分割后提取第3段,存储为Tiles字符向量
Tiles <- sapply(strsplit(ids, split = "_"), function(x) x[3])

运行后直接打印Tiles即可验证结果,示例输出为 "T12" "T13" "T14"。


方法2:用stringr包实现(代码更简洁)

如果你已经加载tidyverse套件,可直接调用str_split_fixed处理:

library(stringr)
# 按下划线拆分为3列矩阵,直接取第3列即可
Tiles <- str_split_fixed(ids, "_", n = 3)[,3]

参数n=3指定仅拆分出前3段,不需要处理后续内容,运行效率更高。


绘图调用示例

生成Tiles向量后,直接传入text函数的label参数即可:

# 示例绘图数据
x <- c(1,2,3)
y <- c(4,5,6)
plot(x, y, pch = 16)
# 给每个点添加对应标签,pos=3表示标签显示在点上方
text(x, y, labels = Tiles, pos = 3, col = "red", cex = 0.9)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:04