熱線電話:13121318867

登錄
首頁精彩閱讀R語言 刪除重復值_數據分析師
R語言 刪除重復值_數據分析師
2014-11-07
收藏
R語言 刪除重復值_數據分析師

R語言怎么刪除數據中的重復值,最近手頭下了一批數據,想要刪除其中的重復值,比如:
> data.set
   Ensembl.Gene.ID Gene.Biotype Chromosome.Name Gene.Start..bp. Gene.End..bp.
1  ENSG00000236666    antisense              22        16274560      16278602
2  ENSG00000236666    antisense              22        16274560      16278602
3  ENSG00000234381   pseudogene              22        16333633      16342783
4  ENSG00000234381   pseudogene              22        16333633      16342783
5  ENSG00000234381   pseudogene              22        16333633      16342783
6  ENSG00000234381   pseudogene              22        16333633      16342783
7  ENSG00000234381   pseudogene              22        16333633      16342783
8  ENSG00000234381   pseudogene              22        16333633      16342783
9  ENSG00000234381   pseudogene              22        16333633      16342783
10 ENSG00000224435   pseudogene              22        16345912      16355362

在這個數據中,Ensembl.Gene.ID中只有三個值,其余都是重復值,現在想要根據Ensembl.Gene.ID列重新生成數據,如:
> data.set2
   Ensembl.Gene.ID Gene.Biotype Chromosome.Name Gene.Start..bp. Gene.End..bp.
1  ENSG00000236666    antisense              22        16274560      16278602
3  ENSG00000234381   pseudogene              22        16333633      16342783
10 ENSG00000224435   pseudogene              22        16345912      16355362

那么,在進行這個數據處理的時候也想過用excel來解決,但是excel畢竟有他的局限性,不能處理大批量的數據,所以還是想能夠用R語言來處理這批數據。
在網上以及幾本主要的R語言書籍中都找了下,沒有發現有效的處理辦法。
如:http://cos.name/cn/topic/7621 
但是獲取了一個比較好的解決思路:用duplicated函數。
duplicated函數是一個可以用來解決向量或者數據框重復值的函數,它會返回一個TRUE和FALSE的向量,以標注該索引所對應的值是否是前面數據所重復的值。

那么我們還是以文中開頭提到的數據data.set為例來說明解決辦法:
1、建立是否重復索引;
> index<-duplicated(data.set$Ensembl.Gene.ID)
> index
 [1] FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE

2、生成新數據
那么到了這一步,應該是很多R語言愛好者都能夠處理的問題了,但是我們會發現,我們要的那一行的值是FALSE,所以在后面我們用!來取反:
> data.set2<-data.set[!index,]
> data.set2
   Ensembl.Gene.ID Gene.Biotype Chromosome.Name Gene.Start..bp. Gene.End..bp.
1  ENSG00000236666    antisense              22        16274560      16278602
3  ENSG00000234381   pseudogene              22        16333633      16342783
10 ENSG00000224435   pseudogene              22        16345912      16355362

這樣我們就大功告成了

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢