在R中子集重复测量数据

乌丁

对于以下数据集

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,其vcblm0m1(三个)。数据集应具有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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章