Для 1-го случая: группы, у которых есть как минимум 2 случая с автомобилями
library(dplyr)
df %>%
group_by(Group) %>%
filter(sum(Car) > 1)
# Group Car
# <fct> <dbl>
#1 a 1
#2 a 1
#3 a 0
или база R ave
subset(df, ave(Car, Group, FUN = sum) > 1)
и с data.table
library(data.table)
setDT(df)[, if (sum(.SD) > 1) .SD, by = Group]
Для 2-го случая: группы по крайней мере с 2 случаями Без машины
df %>%
group_by(Group) %>%
filter(sum(Car == 0) > 1)
# Group Car
# <fct> <dbl>
#1 b 0
#2 b 0
#3 b 0
#4 c 1
#5 c 0
#6 c 0
#7 c 0
и с основанием R ave
subset(df, ave(Car == 0, Group, FUN = sum) > 1)
с data.table
setDT(df)[, if (sum(.SD == 0) > 1) .SD, by = Group]
data
Group = c('a','a','a','b','b','b','c','c','c','c')
Car = c(1,1,0,0,0,0,1,0,0,0)
df = data.frame(Group,Car)