2016-01-30 62 views
1

我想grep的行是.之前的字符串V1V2之前的字符串對於同一行是相似的。例如在下面的例子中,第1行就是這種情況。打印行兩列的子串匹配

我想我需要使用gsub某種方式與== gsub(".*$", "", out)

> head(out) 
         V1      V2    V3 V4 
1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.dataTissue 0.261887741880618 <NA> 
2 hsa-miR-99b-3p.dataTissue hsa-miR-99b-5p.dataTissue 0.979410208303266 <NA> 
3 hsa-miR-99b-3p.dataTissue hsa-miR-99b-5p.dataSerum 0.266705152258623 <NA> 
4 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.dataTissue 0.227329471105902 <NA> 
5 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.dataSerum 0.944112218530823 <NA> 
6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.20025336348038 <NA> 

回答

1

相結合,我們可以嘗試sub。匹配模式點(\\.),後跟零個或多個字符(.*),並將其替換爲''以獲得列'V1'和'V2',然後使用==獲取邏輯索引和行子集。

v1 <- sub('\\..*', '', out$V1) 
v2 <- sub('\\..*', '', out$V2) 

out[v1==v2,] 
#      V1      V2  V3 V4 
#1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.dataTissue 0.2618877 <NA> 
#6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.2002534 <NA>