检索具有唯一子字符串的一组字符串

时间:2020-08-03 10:39:13

标签: r regex string substring

我在R中有一组字符串。格式为:"X-Y-Z.3000.F.PP0016-C.A-SL-0433.P-N.fC-G.txt"。我想检索仅包含第一次出现的字符串集。这取决于第四场。在此例如我有多个带X-Y-Z.3000 .....的字符串。“我只希望第一个id = 3000的字符串,其他都一样。

为了重现性:

X-Y-Z.3000.F.PP0016-C.A-SL-0433.P-N.fC-G.txt
X-Y-Z.3000.F.PP0016-C.A-SL-0433.F-N.fC-G.txt
X-Y-Z.3008.F.PP0016-C.A-SL-0433.P-N.fC-G.txt
X-Y-Z.3008.F.PP0016-C.B-SX-0433.P-N.fC-G.txt

所以最后我只需要第三个anche字符串

X-Y-Z.3000.F.PP0016-C.A-SL-0433.P-N.fC-G.txt
X-Y-Z.3008.F.PP0016-C.A-SL-0433.P-N.fC-G.txt

1 个答案:

答案 0 :(得分:1)

提取“ 第四个字段” ,如果我们在"."上分割,则为第二个字段,然后排除重复的项目:

# data
x <- c("X-Y-Z.3000.F.PP0016-C.A-SL-0433.P-N.fC-G.txt",
       "X-Y-Z.3000.F.PP0016-C.A-SL-0433.F-N.fC-G.txt",
       "X-Y-Z.3008.F.PP0016-C.A-SL-0433.P-N.fC-G.txt",
       "X-Y-Z.3008.F.PP0016-C.B-SX-0433.P-N.fC-G.txt")

x[ !duplicated(sapply(strsplit(x, ".", fixed = "TRUE"), "[", 2)) ]
# [1] "X-Y-Z.3000.F.PP0016-C.A-SL-0433.P-N.fC-G.txt"
# [2] "X-Y-Z.3008.F.PP0016-C.A-SL-0433.P-N.fC-G.txt"