Sie können die match
Funktion verwenden. Hier wird match(x, y)
der Index zurückgegeben, an y
dem das Element von x
übereinstimmt. Dann können Sie die zurückgegebenen Indizes verwenden, um einen anderen Vektor (z. B. z
) zu unterteilen, der die Ersetzungen für die Werte von enthält x
, die entsprechend mit übereinstimmen y
. In Ihrem Fall:
mydata <- c("á","é","ó")
desired <- c('a', 'e', 'o')
desired[match(mydata, mydata)]
In einem einfacheren Beispiel betrachten wir die Situation unten, wo ich zu ersetzen versuchte , a
für 'alpha'
, 'b'
für 'beta'
und so weiter.
x <- c('a', 'a', 'b', 'c', 'b', 'c', 'e', 'e', 'd')
y <- c('a', 'b', 'c', 'd', 'e')
z <- c('alpha', 'beta', 'gamma', 'delta', 'epsilon')
z[match(x, y)]
lapply
ersetzen möchten , sollte dies möglich sein , aber da Sie verschiedene Muster durch unterschiedliche Zeichenfolgen ersetzen möchten, müssen Sie diese auf die eine oder andere Weise noch angeben ...