Мы можем группировать по 'id', 'x' и filter
в зависимости от условий
library(dplyr)
df1 %>%
group_by(id, x) %>%
filter(n() == 1|(n() > 1 & y != 1.3))
data
df1 <- structure(list(id = c("a", "a", "a", "b", "b", "b"), x = c(1L,
2L, 2L, 1L, 1L, 1L), y = c(0.2, 1, 1.3, 0.5, 1, 1.3), z = c(100L,
200L, 200L, 400L, 500L, 600L)), class = "data.frame", row.names = c(NA,
-6L))