R:如何对重复的data.frame

时间:2017-10-09 23:01:28

标签: r subset

set.seed(3)
mydata <- data.frame(id = c(1:5),
            score = c(rnorm(5, 0, 1)))
ids <- c(1, 2, 3, 3)
> subset(mydata, id %in% ids)
  id      score
1  1 -0.9619334
2  2 -0.2925257
3  3  0.2587882

我有一种情况,我希望对mydata的所有行进行子集,使其id与我的ids匹配。问题是我的ids重复了3次。但似乎subset仅提取了唯一的行,我猜测由于运算符%in%。但是,我想要的输出是

> subset(mydata, id %in% ids)
      id      score
    1  1 -0.9619334
    2  2 -0.2925257
    3  3  0.2587882
    4  3  0.2587882

我还尝试使用==运算符。然而,这似乎并没有成功。

1 个答案:

答案 0 :(得分:1)

不要使用%in%,而是尝试使用它的姐妹函数match()

mydata[match(ids, mydata$id), ]

这将返回重复的ID。