vez varios reemplazar por para otro masivo mac datos caracter buscar r replace

varios - Reemplazar caracteres específicos dentro de las cadenas



excel reemplazar un caracter por otro (5)

Con una expresión regular y la función gsub() :

group <- c("12357e", "12575e", "197e18", "e18947") group [1] "12357e" "12575e" "197e18" "e18947" gsub("e", "", group) [1] "12357" "12575" "19718" "18947"

Lo que gsub hace aquí es reemplazar cada aparición de "e" con una cadena vacía "" .

Consulte ?regexp gsub o gsub para obtener más ayuda.

Me gustaría eliminar caracteres específicos de cadenas dentro de un vector, similar a la función Buscar y reemplazar en Excel.

Aquí están los datos con los que empiezo:

group <- data.frame(c("12357e", "12575e", "197e18", "e18947")

Comienzo solo con la primera columna; Quiero producir la segunda columna eliminando las e :

group group.no.e 12357e 12357 12575e 12575 197e18 19718 e18947 18947


Las expresiones regulares son tus amigos:

R> ## also adds missing '')'' and sets column name R> group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947")) ) R> group group 1 12357e 2 12575e 3 197e18 4 e18947

Ahora use gsub() con el patrón de reemplazo más simple posible: cadena vacía:

R> group$groupNoE <- gsub("e", "", group$group) R> group group groupNoE 1 12357e 12357 2 12575e 12575 3 197e18 19718 4 e18947 18947 R>


No es necesario crear un marco de datos a partir de vectores de cadenas, si desea reemplazar algunos caracteres en él. Las expresiones regulares son una buena opción, ya que ya lo mencionaron @Andrie y @Dirk Eddelbuettel.

Preste atención, si desea reemplazar caracteres especiales, como puntos, debe emplear una sintaxis de expresión regular completa, como se muestra en el siguiente ejemplo:

ctr_names <- c("Czech.Republic","New.Zealand","Great.Britain") gsub("[.]", " ", ctr_names)

esto producirá

[1] "Czech Republic" "New Zealand" "Great Britain"


Resumiendo 2 formas de reemplazar cadenas:

group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))

1) Utilice gsub

group$group.no.e <- gsub("e", "", group$group)

2) Usa el paquete stringr

group$group.no.e <- str_replace_all(group$group, "e", "")

Ambos producirán la salida de deseo:

group group.no.e 1 12357e 12357 2 12575e 12575 3 197e18 19718 4 e18947 18947


Usa el paquete stringi :

require(stringi) group<-data.frame(c("12357e", "12575e", "197e18", "e18947")) stri_replace_all(group[,1], "", fixed="e") [1] "12357" "12575" "19718" "18947"