Ho due stringhe, a <- "AERRRTX"; b <- "TRRA"
.Estrarre caratteri distinti che differiscono tra due stringhe
Voglio estrarre i personaggi di a
non utilizzate in b
, vale a dire "ERX"
ho cercato la risposta in Extract characters that differ between two strings, che utilizza setdiff
. Restituisce "EX", perché b
ha "R" e setdiff
eliminerà tutte e tre le "R" in a
. Il mio obiettivo è quello di trattare ogni personaggio come distinto, quindi solo due delle tre R in a
dovrebbero essere eliminate.
Qualche suggerimento su cosa posso utilizzare al posto di setdiff
o qualche altro approccio per raggiungere il mio risultato?
Punto minore: E 'consigliabile per evitare di assegnare 'c', poiché è una funzione incorporata comunemente usata. Se 'c' è una variabile definita in qualsiasi ambiente che racchiude, i riferimenti a tale identificatore possono associarsi ad esso, il che può rovinare un sacco di codice. Ad esempio, 'do.call (c, ...)' fallisce in questo caso. – bgoldst
@bgoldst hai ragione. Aggiornato. Grazie! –
Bella alternativa. È possibile sostituire la terza riga con 'a1 [-pmatch (b1, a1)]'. Inoltre, sarebbe utile notare l'argomento "duplicates.ok = FALSE" di 'pmatch' che differenzia il suo comportamento in' match' –