En datos de medidas repetidas, ¿cómo subconjunto para seleccionar casos y controles coincidentes?

Tengo un conjunto de datos agrupados por familia, la pregunta de investigación es si 2 personas de la misma familia con características diferentes x tienen el mismo resultado binario (sí / no) y. En algunas familias, todos los miembros son "sí" por y. En otras familias, algunos son "sí" y otros son "no" para y. Quiero obtener solo a las familias con estados de resultados discordantes. Supongo que el código será una especie de enunciados lógicos condicionales, pero aún no puedo entenderlo ... En los datos de muestra a continuación, por ejemplo, solo quiero obtener las familias 2 y 3. ¡Gracias por su ayuda!

#sample data
df <- as.data.frame(cbind(
famid <- c(1,1,2,2,3,3,3),
individ <- c(1,2,3,4,5,6,7),
y <- c(0,0,0,1,0,0,1)))
colnames(df) <- c("famid", "individ", "y")

Respuestas a la pregunta(1)

Su respuesta a la pregunta