子集数据框

时间:2016-12-22 10:48:57

标签: r

我有一个如下所示的数据框:

Intid   Ref RegNum  Vetted  Name    Value
1       x   A1      Yes     A       45
1       x   A1      Yes     B       168
1       x   A1      Yes     C       303
2       x   A1      No      A       45
2       x   A1      No      B       85
2       x   A1      No      C       280
3       y   B2      No      A       23
3       y   B2      No      F       50

如何对其进行子集以使数据框看起来像这样;意味着仅保留Yes RegNum VettedYesNo的数据RegNum以及No Intid Ref RegNum Vetted Name Value 1 x A1 Yes A 45 1 x A1 Yes B 168 1 x A1 Yes C 303 3 y B2 No A 23 3 y B2 No F 50 的数据{1}}仅限值?

seek()

1 个答案:

答案 0 :(得分:1)

dplyr的一个想法可以是,

library(dplyr)
df %>% 
 group_by(RegNum) %>% 
 filter(Vetted == 'Yes'|all(Vetted == 'No'))

#Source: local data frame [5 x 6]
#Groups: RegNum [2]

#  Intid    Ref RegNum Vetted   Name Value
#  <int> <fctr> <fctr> <fctr> <fctr> <int>
#1     1      x     A1    Yes      A    45
#2     1      x     A1    Yes      B   168
#3     1      x     A1    Yes      C   303
#4     3      y     B2     No      A    23
#5     3      y     B2     No      F    50