Ho un set di dati Vorrei rimuovere le righe di dati che hanno informazioni duplicate in 4 colonne diverse.rimuovere le righe duplicate in base alle condizioni da più colonne in
foo<- data.frame(g1 = c("1","0","0","1","1"), v1 = c("7","5","4","4","3"), v2 = c("a","b","x","x","e"), y1 = c("y","c","f","f","w"), y2= c("y","y","y","f","c"), y3 = c("y","c","c","f","w"), y4= c("y","y","f","f","c"), y5=c("y","w","f","f","w"), y6=c("y","c","f","f","w"))
foo si presenta quindi come:
g1 v1 v2 y1 y2 y3 y4 y5 y6
1 1 7 a y y y y y y
2 0 5 b c y c y w c
3 0 4 x f y c f f f
4 1 4 x f f f f f f
5 1 3 e w c w c w w
Ora, voglio rimuovere ogni riga che ha duplicato i dati in base ai Y1-6columns. Quindi, solo le righe 4 e 1 verrebbero rimosse se fatte correttamente, in base a tutte le variabili Y che sono esattamente le stesse. È una condizione a più colonne.
Credo di essere vicino, ma non funziona correttamente.
Ho provato: new = foo[!(duplicated(foo[,1:6]))]
pensando di usare il comando duplicato per cercare e trovare solo quelli che corrispondono esattamente?
Ho pensato di utilizzare un'istruzione condizionale con &, ma non riesco a capire come farlo.
new = foo[foo$y1==foo$y2|foo$y3|foo$y4|foo$y5|foo$y6]
Ho pensato a quale, ma ora sono sopraffatto e perso. Mi aspetterei foo per assomigliare:
g1 v1 v2 y1 y2 y3 y4 y5 y6
2 0 5 b c y c y w c
3 0 4 x f y c f f f
5 1 3 e w c w c w w
Il mio preferito finora. –
Mi scuso se ho semplificato il mio esempio, perché ho più colonne di informazioni ... quindi basato sulla variabile 1-6 SOLO su 9 colonne di informazione totali. Modificherò l'esempio sopra riportato – Kerry
Ho aggiornato la mia risposta. Ora, la selezione delle righe si basa sulle colonne y1 - y6. –