Ich habe einen Vektor von Pfadschritten und es gibt einen bestimmten Pfadschritt, der, wenn er wiederholt, möchte ich die Wiederholungen beseitigen.Wie man ein bestimmtes sich wiederholendes Element nach dem ersten von einem Zeichenvektor entfernt
Zum Beispiel
my_vec = "A > A > X > B > X > X > X > C > C"
Nun, wenn ‚X‘ wiederholt, dann will ich alle Wiederholungen von X neben dem ersten beseitigen, während die Reihenfolge der übrigen Elemente zu bewahren, so dass mein Wunsch Ergebnis ist:
my_vec = "A > A > X > B > X > C > C"
, wo die repetitiven X aus der Mitte eliminiert werden.
Ich versuchte dies mit einer for-Schleife und wenn-sonst-Kombination, so dass ich erkennen würde, wenn ein vorheriges Element im Vektor auch 'X' enthält, dann ersetzen Sie das Element mit NA und danach konnte ich die NA-Elemente entfernen , aber dieser Ansatz liefert nicht das gewünschte Ergebnis.
Ich habe versucht, here und here suchen, aber diese nur die einzigartigen Elemente herausfiltern, während ich diese Aktion auf ein bestimmtes Element durchführen möchte.
Hier ist mein Code:
my_vec <- unlist(str_split(my_vec, '>'))
for (i in length(my_vec)){
if (grepl('X', my_vec[i]) & grepl('X', my_vec[i-1])) {
steps[i] <- NA
} else {
next()
}}
my_new_vec <- str_c(steps, collapse = '>')
jedoch der Ausgang ist genau das gleiche wie Eingang und nichts wird in NA geändert.
Wunderbar! Vielen Dank! – Edgar