我有一个data.frame,其中我有基因名称(行),如下所示:
ABCB1
ABCB1 /// ABCB4
ABCB4
ABHD14A /// ACY1
ABHD14A
BOLA2 /// BOLA2B
ATF6B
ATF6B /// TNXB
TNXB
对于某些行,我有单个基因名称(例如:ABCB1和ABCB4)和基因名称的组合(例如:ABCB1 /// ABCB4),而对于其他行,只有组合(例如:BOLA2) /// BOLA2B)。我想将我报告的单个基因作为单行及其组合的情况进行分组。有人可以帮我吗?
预期产出:
ABCB1
ABCB1 /// ABCB4
ABCB4
ABHD14A /// ACY1
ABHD14A
ATF6B
ATF6B /// TNXB
TNXB
最佳。
答案 0 :(得分:1)
你可以尝试
Val1 <- sub(' ///.*', '', df$Col1)
Val2 <- sub('.*/// ', '', df$Col1)
ind1 <- duplicated(Val1)|duplicated(Val1,fromLast=TRUE)
ind2 <- duplicated(Val2)|duplicated(Val2,fromLast=TRUE)
df[ind1|ind2,,drop=FALSE]
# Col1
#1 ABCB1
#2 ABCB1 /// ABCB4
#3 ABCB4
#4 ABHD14A /// ACY1
#5 ABHD14A
#7 ATF6B
#8 ATF6B /// TNXB
#9 TNXB
df <- structure(list(Col1 = c("ABCB1", "ABCB1 /// ABCB4", "ABCB4",
"ABHD14A /// ACY1", "ABHD14A", "BOLA2 /// BOLA2B", "ATF6B",
"ATF6B /// TNXB", "TNXB")), .Names = "Col1", class = "data.frame",
row.names = c(NA, -9L))