我有一个对象列表,与以下列表类似。为简单起见,该列表仅由所述对象的名称组成。
List1
A1_B1.C1
A1_B2.C2
A1_B3.C3
A2_B1.C1
A2_B2.C2
A2_B3.C3
A3_B1.C1
A3_B2.C2
A3_B3.C3
我想将所有类似的B
数据连接到新列表中。
List2
B1
A1_B1.C1
A2_B1.C1
A3_B1.C1
B2
A1_B2.C1
A2_B2.C2
A3_B2.C3
B3
A1_B3.C1
A2_B3.C2
A3_B3.C3
我一直在尝试一些正则表达式代码,以尝试在.
之前和之后分割对象的名称,但效果不佳。
任何帮助将不胜感激。
答案 0 :(得分:1)
一个选项将是split
,使用提取的'B'子字符串
split(v1, gsub("A\\d+_|\\.C\\d+", "", v1))
#$B1
#[1] "A1_B1.C1" "A2_B1.C1" "A3_B1.C1"
#$B2
#[1] "A1_B2.C2" "A2_B2.C2" "A3_B2.C2"
#$B3
#[1] "A1_B3.C3" "A2_B3.C3" "A3_B3.C3"
注意:尚不清楚这些是否是对象标识符
OP使用不同的字符串模式
split(v2, gsub("^[^_]+\\_|\\..*$", "", v2))
v1 <- c("A1_B1.C1", "A1_B2.C2", "A1_B3.C3", "A2_B1.C1", "A2_B2.C2",
"A2_B3.C3", "A3_B1.C1", "A3_B2.C2", "A3_B3.C3")
v2 <- "GenetypeA_Drug1.ValueA"