子集基因(单词)和基因组合(单词)

时间:2015-02-04 11:46:25

标签: r

我有一个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    

最佳。

1 个答案:

答案 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))