我有一个包含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!复制来提取数据? 谢谢,一切顺利 彼得
答案 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