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
我还尝试使用==
运算符。然而,这似乎并没有成功。
答案 0 :(得分:1)
不要使用%in%
,而是尝试使用它的姐妹函数match()
mydata[match(ids, mydata$id), ]
这将返回重复的ID。