Select 来自复杂 ID 的单个元素

Select a single element from a complex ID

我有诸如“3_K97_T12_High_2_Apples”之类的 ID。我想 select 只是“T12”并将其存储在字符向量 (Tiles) 中,这样当我在 plot() 中用 label = Tiles 标记我的点时,我可以在 text() 中调用它。我想用 ID 的第三个元素(即 T12)标记每个点。

我该怎么做?

使用正则表达式提取 - 从字符串的开头 (^) 捕获第三组不是 _ (([^_]+) 的字符作为一个组,并且在替换中指定捕获组的反向引用(\1

Tiles <- sub("^[^_]+_[^_]+_([^_]+)_.*", "\1", str1)
Tiles
[1] "T12"

^ - 字符串的开头

[^_]+ - 一个或多个字符不是 _

_ - _

[^_]+ - 一个或多个字符不是 _

_ - _

([^_]+) - 一个或多个字符未被 _ 捕获

数据

str1 <- "3_K97_T12_High_2_Apples"