Here is one possible solution, though it isn't very elegant.
library(dplyr)
DF <- data.frame(A=c(1,1,1,1,1),B=c(1,3,1,1,1),C=c(1,1,1,1,2))
#Row 4 should be removed
DF
#> A B C
#> 1 1 1 1
#> 2 1 3 1
#> 3 1 1 1
#> 4 1 1 1
#> 5 1 1 2
lagged <- rbind(c(NA,NA,NA),DF[-nrow(DF),])
colnames(lagged) <- paste("L",colnames(lagged),sep="_")
lagged
#> L_A L_B L_C
#> 1 NA NA NA
#> 2 1 1 1
#> 3 1 3 1
#> 4 1 1 1
#> 5 1 1 1
Combinded <- cbind(DF,lagged)
Combinded
#> A B C L_A L_B L_C
#> 1 1 1 1 NA NA NA
#> 2 1 3 1 1 1 1
#> 3 1 1 1 1 3 1
#> 4 1 1 1 1 1 1
#> 5 1 1 2 1 1 1
Combinded <- Combinded |> rowwise() |>
mutate(Flag = all(c_across(A:C) == c_across(L_A:L_C)))
DF <- Combinded |> filter(is.na(Flag) | !Flag) |>
select(A:C)
DF
#> # A tibble: 4 x 3
#> # Rowwise:
#> A B C
#> <dbl> <dbl> <dbl>
#> 1 1 1 1
#> 2 1 3 1
#> 3 1 1 1
#> 4 1 1 2
Created on 2022-08-06 by the reprex package (v2.0.1)