Вы можете проверить, равна ли накопленная сумма нулю на группу.
dat[with(dat, ave(Var1, id, FUN = cumsum) == 0), ]
# id Var1
#1 A 0
#2 A 0
#5 B 0
Данные
dat <- structure(list(id = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L
), .Label = c("A", "B"), class = "factor"), Var1 = c(0L, 0L,
1L, 0L, 0L, 1L, 0L, 1L)), .Names = c("id", "Var1"), class = "data.frame", row.names = c(NA,
-8L))