2016-06-13 12 views
0

私は10列のdata.frame dfを持っています。最初の列には一意の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が異なるYRを複製

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 

方法データを抽出するために重複AND!duplicateを組み合わせることはできますか?コードの下のピーター@ おかげで、すべての最高 ピーター

答えて

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

関連する問題