Mam dwa ciągi znaków, a <- "AERRRTX"; b <- "TRRA"
.Wyodrębnij różne znaki, które różnią się między dwoma ciągami znaków
chcę wyodrębnić znaki a
nieużywane w b
, to znaczy „ERX”
Próbowałem odpowiedź w Extract characters that differ between two strings, która wykorzystuje setdiff
. Zwraca "EX", ponieważ b
ma "R", a setdiff
wyeliminuje wszystkie trzy "R" w a
. Moim celem jest traktowanie każdej postaci jako odrębnej, tak aby wyeliminować tylko dwa z trzech R w a
.
Wszelkie sugestie dotyczące tego, co mogę użyć zamiast setdiff
, lub inne podejście do osiągnięcia moich wyników?
drobna uwaga: Jest to wskazane aby nie przypisywać 'c', ponieważ jest to najczęściej używana wbudowana funkcja. Jeśli 'c' jest zmienną zdefiniowaną w jakimkolwiek otaczającym środowisku, odniesienia do tego identyfikatora mogą się z nim wiązać, co może zepsuć wiele kodu. Na przykład 'do.call (c, ...)' nie powiedzie się w tym przypadku. – bgoldst
@bgoldst masz rację. Zaktualizowano. Dzięki! –
Ładna alternatywa. Możesz zamienić trzecią linię na 'a1 [-pmatch (b1, a1)]'. Warto również zauważyć argument "duplicates.ok = FALSE" z 'pmatch', który różnicuje jego zachowanie na' match' –