项目R:提取相同的ID,不同的值

时间:2016-06-13 13:04:30

标签: r extract

我有一个包含10列的data.frame df。第一列包含唯一ID。 我想提取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!复制来提取数据? 谢谢,一切顺利 彼得

1 个答案:

答案 0 :(得分:1)

@ peter下面的代码给出了你想要的东西:

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