Один из способов сделать это - использовать пакет dplyr (и способ мышления tidyverse).
Ваш вопрос задает вопрос о том, как создать индекс, и вот что я вам дам.Но имейте в виду, что следующий код удаляет недубликаты, чтобы сделать это ... поэтому, если ваша цель состоит в том, чтобы удалить недубликаты или дубликаты, вы можете изменить код.
library(dplyr)
df <- data.frame(
Column1 = c(1,2,1,2),
Column2 = c(2,1,2,NA),
Column3 = c(NA,1,1,NA),
Column4 = c(NA,NA,2,1),
stringsAsFactors = FALSE
)
# Column1 Column2 Column3 Column4
# 1 1 2 NA NA
# 2 2 1 1 NA
# 3 1 2 1 2
# 4 2 NA NA 1
duplicate_rows <- df %>%
rowwise() %>%
mutate(dups = anyDuplicated(na.omit(c(Column1,Column2,Column3,Column4)))) %>%
ungroup() %>%
mutate(index = row_number()) %>%
filter(dups > 0) %>%
.$index
duplicate_rows
# [1] 2 3