Я б хотів визначити і позначити повторювані рядки на основі 2 стовпців. Я хотів би зробити унікальний ідентифікатор для кожного дубліката, щоб я знав не лише те, що рядок є дублікатом, але і для якого рядка це дублікат. У мене є кадр даних, який виглядає як нижче, з деякими повторюваними парами елементів (на fit і sit) та іншими парами, які не дублюються. Хоча пари елементів дублюються, інформація, яку вони містять, є унікальною (наприклад, для одного рядка буде значення Value1 для 1 рядка, але не Value2 і Value 3, другий або "дублікат" рядків матиме числа для Value2 та Value3 просто не значення1)
поточний кадр даних
value1 value2 value3 fit sit
[1,] "1" NA NA "it1" "it2"
[2,] NA "3" "2" "it2" "it1"
[3,] "2" "3" "4" "it3" "it4"
[4,] NA NA NA "it4" "it3"
[5,] "5" NA NA "it5" "it6"
[6,] NA NA "2" "it6" "it5"
[7,] NA "4" NA "it7" "it9"
код для створення прикладу фрейму даних
value1<-c(1,NA,2,NA,5,NA,NA)
value2<-c(NA,3,3,NA,NA,NA, 4)
value3<-c(NA,2,4,NA,NA,2, NA)
fit<-c("it1","it2","it3","it4", "it5", "it6","it7")
sit<-c("it2","it1","it4","it3", "it6", "it5", "it9")
df.now<-cbind(value1,value2,value3, fit, sit)
що я хочу, це перетворити його в кадр даних, який виглядає приблизно так:
потрібний кадр даних
val1 val2 val3 it1 it2
[1,] "1" "3" "2" "it1" "it2"
[2,] "2" "3" "4" "it3" "it4"
[3,] "5" NA "2" "it5" "it6"
[4,] NA "4" NA "it7" "it9"
Я думав зробити наступні кроки: 1. створити нові змінні, використовуючи fit і сидіти з найнижчим елементом та найвищими елементами для ідентифікації повторюваних пар 2. ідентифікувати повторювані пари елементів 3. використовувати ifelse для вибору та заповнення унікальної інформації.
Я знаю, як зробити кроки 1 і 3, але я затримався на кроці 2. Я думаю, що мені потрібно зробити не просто ідентифікувати дублікат TRUE / FALSE, але, можливо, мати стовпчик з унікальним ідентифікатором для кожної пари елементів, як це (є є 2 додаткові рядки через мій крок 1):
value1 value2 value3 fit sit lit hit dup
[1,] "1" NA NA "it1" "it2" "it1" "it2" 1
[2,] NA "3" "2" "it2" "it1" "it1" "it2" 1
[3,] "2" "3" "4" "it3" "it4" "it3" "it4" 2
[4,] NA NA NA "it4" "it3" "it3" "it4" 2
[5,] "5" NA NA "it5" "it6" "it5" "it6" 3
[6,] NA NA "2" "it6" "it5" "it5" "it6" 3
[7,] NA "4" NA "it7" "it9" "it7" "it9" NA
Я не впевнений, як це зробити.
Я прошу або допомогти з кроком 2, або, можливо, є кращий спосіб її вирішити, ніж кроки, які я окреслив.