Vorrei identificare e contrassegnare le righe duplicate in base a 2 colonne. Vorrei creare un identificatore univoco per ciascun duplicato, quindi so non solo che la riga è un duplicato, ma con quale riga è un duplicato. Ho un frame di dati che appare come di seguito con alcune coppie di oggetti duplicati (in forma e seduta) e altre coppie che non sono duplicate. Mentre le coppie di elementi sono duplicate, le informazioni che contengono sono univoche (ad esempio, una riga avrà un valore in Valore1 per 1 riga, ma non Valore2 e Valore 3, la seconda o la riga 'duplicata' avrà i numeri per Valore2 e Valore3 solo non valore1)
dataframe corrente
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"
codice per generare un esempio di frame di dati
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)
quello che voglio è convertirlo in un frame di dati che assomiglia a questo:
dataframe desiderato
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"
Stavo pensando di fare i seguenti passi: 1. creare nuove variabili usando fit e sedere con l'elemento più basso e gli elementi più alti per identificare le coppie duplicate 2. identificare le coppie di oggetti duplicate 3. usare ifelse per selezionare e inserire informazioni uniche.
So come eseguire i passaggi 1 e 3, ma sono bloccato al passaggio 2. Penso che ciò che devo fare non sia solo identificare il duplicato VERO / FALSO, ma forse avere una colonna con un identificatore univoco per ogni coppia di oggetti come questa (lì sono 2 righe extra a causa del mio passaggio 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
Non sono sicuro di come farlo.
Quello che sto chiedendo è di aiutare con il passaggio 2 o forse c'è un modo migliore per risolverlo rispetto ai passaggi che ho delineato.