Мы можем использовать duplicated
для создания логического индекса и использовать его для replace
каждого из столбцов с NA
df1[] <- lapply(df1, function(x)
replace(x, duplicated(x)|duplicated(x, fromLast = TRUE), NA))
или с dplyr
library(dplyr)
df1 %>%
mutate_all(~ replace(., duplicated(.)|duplicated(., fromLast = TRUE), NA))
data
df1 <- structure(list(V1 = c("4D+44", "NONE", "NONE", "29D+139", "29D+139",
"30D+174", "6D+227", "NONE", "4D+285", "NONE"), V2 = c("18D+30",
"NONE", "NONE", "18D+124", "5D+164", "9D+194", "4D+225", "NONE",
"NONE", "NONE"), V3 = c("125D+44", "125D+44", "125D+44", "125D+44",
"125D+44", "NONE", "NONE", "NONE", "NONE", "NONE"), V4 = c("4D+48",
"NONE", "NONE", "4D+133", "NONE", "NONE", "39D+217", "39D+217",
"NONE", "NONE")), class = "data.frame", row.names = c("X1", "X2",
"X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10"))