Я искал эффективный способ подсчета и удаления повторяющихся строк в кадре данных, сохраняя индекс своих первых вхождений. Например, если у меня есть кадр данных:R - подсчитывать повторяющиеся строки, сохраняющие индекс их первых вхождений
df<-data.frame(x=c(9.3,5.1,0.6,0.6,8.5,1.3,1.3,10.8),y=c(2.4,7.1,4.2,4.2,3.2,8.1,8.1,5.9))
ddply(df,names(df),nrow)
дает мне
x y V1
1 0.6 4.2 2
2 1.3 8.1 2
3 5.1 7.1 1
4 8.5 3.2 1
5 9.3 2.4 1
6 10.8 5.9 1
Но я хочу, чтобы сохранить исходные показатели (наряду с именами строк) дублированных строк. как:
x y V1
1 9.3 2.4 1
2 5.1 7.1 1
3 0.6 4.2 2
5 8.5 3.2 1
6 1.3 8.1 2
8 10.8 5.9 1
"дублироваться" возвращает исходные rownames (здесь {1 2 3 5 6 8}), но оленья кожа подсчитать количество вхождений. Я пробовал писать функции самостоятельно, но ни один из них не является достаточно эффективным для обработки больших данных. В моем кадре данных может быть до нескольких миллионов строк (хотя столбцы обычно от 5 до 10).
Я бы предположил, что вы приняли решение из дублированного сообщения. Интересно, почему бы вам не взглянуть дальше на остальные решения. –
Я просмотрел множество решений, но не смог найти «сохранение первых экземпляров дубликатов» где угодно. Поскольку у меня нет привилегии добавлять комментарии в более старые сообщения, а вопрос «вопрос» в поле «ответ» был бы неправильным, мне пришлось создать новый пост. Я задал этот вопрос после борьбы с ним в течение 6 дней. – Ira
О, я вижу. Я не заметил, что вам тоже нужны имена строк. –