2016-06-13 28 views
0

我有一个data.frame df 10列。第一列包含唯一的ID。 我想提取所有行的ID出现多于一次(所以我想我必须处理重复),但在另一列中有不同的值。项目R:提取相同的ID,不同的值

例如:

set.seed(1) 
mydf <- data.frame(
     Cnty = rep(c("185", "31", "189"), times = c(5, 3, 2)), 
     Yr = c(rep(c("1999", "2000"), times = c(3, 2)), 
       "1999", "1999", "2000", "2000", "2000"), 
     Plt = "20001", 
     Spp = sample(c("Bitternut", "Pignut", "WO"), 10, replace = TRUE), 
     DBH = runif(10, 0, 15) 
    ) 

结果将是这样的:

Cnty Yr Plt  Spp  DBH 
1 185 1999 20001 Bitternut 3.089619 
2 185 1999 20001 Pignut 2.648351 
3 185 1999 20001 Pignut 10.305343 
4 185 2000 20001  WO 5.761556 
5 185 2000 20001 Bitternut 11.547621 
6 31 1999 20001  WO 7.465489 
7 31 1999 20001  WO 10.764278 
8 31 2000 20001 Pignut 14.878591 
9 189 2000 20001 Pignut 5.700528 
10 189 2000 20001 Bitternut 11.661678 

但我想就是这样的一个输出 - 重复CNTY但不同年

Cnty Yr Plt  Spp  DBH 
1 185 1999 20001 Bitternut 3.089619 
4 185 2000 20001  WO 5.761556 
6 31 1999 20001  WO 7.465489 
8 31 2000 20001 Pignut 14.878591 
9 189 2000 20001 Pignut 5.700528 

如何我可以合并重复和!重复提取数据? 感谢所有最好的 彼得

回答

1

@彼得下面的代码给你想要的东西:

mydf <- mydf[!duplicated(mydf[,c(1,2)]), ] 
mydf 


Cnty Yr Plt  Spp DBH 
1 185 1999 20001 Bitternut 3.090 
4 185 2000 20001  WO 5.762 
6 31 1999 20001  WO 7.465 
8 31 2000 20001 Pignut 14.879 
9 189 2000 20001 Pignut 5.701 
+0

谢谢...有什么特殊的原因与工作的“复制”,而不是“唯一”? – Peter