Предположим, что в кадре данных df имеется 5 столбцов от a1 до a5. Я хочу те строки df, которые имеют общие значения в столбцах a1 и a2.Строки в кадре данных с дублируемыми значениями в определенных столбцах
col=c("a1","a2")
df1=df[,which(colnames(df)%in%col)]
l=which(duplicated(df1)==TRUE)
df2=df[l, ]
В настоящее время df2
содержит только повторяющиеся строки. Я хочу добавить соответствующие строки с дублирующимися значениями.
Образец
a1=c(1:3,3,4)
a2=c("a1","a2","a2","a2","a1")
a3=c(1:5)
df=data.frame(a1,a2,a3)
df
a1 a2 a3
1 1 a1 1
2 2 a2 2
3 3 a2 3
4 3 a2 4
5 4 a1 5
col1=c("a1","a2")
df1=df[,which(colnames(df)%in%col1)]
l=which(duplicated(df1)==TRUE)
df2=df[l, ]
df2
a1 a2 a3
4 3 a2 4
Но я хочу df2
быть
a1 a2 a3
3 3 a2 3
4 3 a2 4
Одним из решений является поиск в ДФ .. но мой ДФ имеет около 10 миллионов строк .. поэтому такое решение является эффективным
Пожалуйста показать небольшой пример и ожидаемый результат на основе этого – akrun
, добавленного в Q, Pl снова ссылается на Q –
Недавно был опубликован аналогичный вопрос 'df [duplicated (df [1: 2]) | duplicated (df [1: 2], fromLast = TRUE),] ' – akrun