对于以下数据集
ndat=data.frame(id=c(2,2,3,3,3,3,4,4,5,5,5,5,6,6,6),
vc=c("bl",'m0', "bl","m0","m1","m2","bl","m0","bl","m0","m1","m2","bl","m0","m1"),
yval=rnorm(15))
> ndat
id vc yval
1 2 bl 0.24033800
2 2 m0 -0.59292580
3 3 bl 1.13617080
4 3 m0 0.08219857
5 3 m1 1.37190692
6 3 m2 -1.24172726
7 4 bl -1.66812438
8 4 m0 1.66443525
9 5 bl -0.95858647
10 5 m0 0.93729295
11 5 m1 0.64848009
12 5 m2 0.57172027
13 6 bl -0.34740570
14 6 m0 0.15883881
15 6 m1 0.88409881
我想基于id
和创建一个子集vc
。子集id
,其vc
有bl
,m0
和m1
(三个)。数据集应具有id
3,5,6
我们可以通过“ID”和基团filter
,其中all
该载体元件“BL”,“M0”的和“M1”是%in%
在“VC”列
library(dplyr)
ndat %>%
group_by(id) %>%
filter(all(c('bl', 'm0', 'm1') %in% vc), vc %in% c('bl', 'm0', 'm1')) %>%
ungroup
-输出
# A tibble: 9 x 3
# id vc yval
# <dbl> <chr> <dbl>
#1 3 bl 0.984
#2 3 m0 0.275
#3 3 m1 0.952
#4 5 bl 0.242
#5 5 m0 -1.10
#6 5 m1 0.0883
#7 6 bl 0.448
#8 6 m0 0.631
#9 6 m1 -0.967
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句