Мы можем перебрать столбцы и найти any
дубликатов с table
для идентификации имен столбцов
names(df1)[sapply(df1, function(x) any(table(x) > 1))]
#[1] "A" "C"
Или другое решение base R
будет
names(Filter(anyDuplicated, df1))
#[1] "A" "C"
Или с tidyverse
library(tidyverse)
names(df1)[!!map_int(df1, anyDuplicated)]
#[1] "A" "C"
data
df1 <- structure(list(A = c(1L, 2L, 3L, 1L), B = 2:5, C = c("a", "b",
"a", "c")), class = "data.frame", row.names = c(NA, -4L))