假设我在一列(A-Z)中有一个包含26个唯一值(可能重复)的数据帧,而在其他列中有一些其他数据:
A data data
B data data
A data data
C data data
D data data
R data data
T data data
.
.
Lets say it has total 400 values but only 26 are unique which means some are
repeating
现在假设我有一个包含10个这些唯一值的数据框,每个唯一值只出现一次,如下所示:
A
R
Y
U
.
.
It has only 10 unique values
现在我应该如何仅从第一个数据帧中选择那些包含第二个数据帧中任何一个唯一值的行,即包含第二个数据帧的10个唯一值中的任何一个的所有行。
答案 0 :(得分:0)
你可以使用%in%
,它是矢量化的。请注意,我在第二个解决方案中使用了unique
只是为了表明它需要 。
set.seed(1596)
dat <- data.frame(x <- sample(LETTERS, 50, TRUE), y = rnorm(50))
select <- data.frame(x <- sample(LETTERS[1:10], 20, TRUE))
inx <- dat$x %in% select$x
inx2 <- dat$x %in% unique(select$x)
identical(dat[inx, ], dat[inx2, ])
[1] TRUE