2016-03-22 25 views
1

dayalı tüm satırları kaldırın:temel örneğini takiben birden çok sütun

v1 <- c("a","b","c","a","b") 
v2 <- c(1,2,3,1,1) 
v3 <- rnorm(5,5) 

dat <- data.frame(cbind(v1,v2,v3)) 

Ben v1 ve v2 aynı değere sahip tüm satırları kaldırmak istiyorum.

Ben

dat[!duplicated(dat[,c("v1","v2")]),] 

    v1 v2 v3 
1 a 1 6.48929449801677 
2 b 2 4.89050807004701 
3 c 3 5.57089903349316 
5 b 1 4.08152834124853 

kullanabilirsiniz yinelenen satırları kaldırmak için Ama aynı zamanda ilk satırı kaldırmak istiyorum.

Herkesin basit bir çözümü var mı? Belki de tanımlayamadığım bir çift kopya.

+0

[bu gönderiye bakın] (http://stackoverflow.com/questions/12495345/find-indices-of-duplicated-rows) –

cevap

3

duplicated'u, fromLast=TRUE numaralı kopyasını, çoğaltmaları ters yönde aramak için kullanabilir ve tüm kopyaları almak için |'u kullanabiliriz. Mantıksal dizini iptal etmek yalnızca daha sonra alt kümeye aldığımız benzersiz satırların dizinini alır.

dat[!(duplicated(dat[,c("v1","v2")])| 
    duplicated(dat[,c("v1", "v2")], fromLast=TRUE)),] 
İlgili konular