A related approach to @FJCC's answer is the following:
library(tidyverse)
df <- tribble(
~X, ~Y, ~Z,
1, "A", "B",
1, "A", "C",
1, "G", "I",
2, "R", "D",
3, "A", "E",
3, "A", "O"
)
df %>%
group_by(X) %>%
filter(n() > 1) %>%
ungroup()
#> # A tibble: 5 x 3
#> X Y Z
#> <dbl> <chr> <chr>
#> 1 1 A B
#> 2 1 A C
#> 3 1 G I
#> 4 3 A E
#> 5 3 A O
Created on 2020-06-03 by the reprex package (v0.3.0)