I have a data set which looks like the following (partially):
id name dummy 1 Jane 1 1 Jane 0 1 Jane 1 2 Mike 0 2 Mike 0 2 Mik
You can use plyr::ddply too
plyr::ddply
require(plyr) ddply(df, .(name), function(x) subset(x, !all(dummy == 0))) ## id name dummy ## 1 1 Jane 1 ## 2 1 Jane 0 ## 3 1 Jane 1 ## 4 3 Tom 1 ## 5 3 Tom 1 ## 6 3 Tom 0 ## 7 3 Tom 0
Note that it's possible to replace !all(dummy == 0) by any(dummy != 0)
!all(dummy == 0)
any(dummy != 0)