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")
Empiezo con solo la primera columna; Quiero producir la segunda columna quitando los e
's:
group group.no.e
12357e 12357
12575e 12575
197e18 19718
e18947 18947
fixed = TRUE
Haría esto más rápido.fixed=TRUE
evita que R use expresiones regulares, lo que permite una coincidencia de patrones más flexible pero toma tiempo para calcular. Si todo lo que se necesita es eliminar una sola cadena constante "e", no son necesarias.sub("e", "", group)
el mismo resultado?e
que encuentre en cada elementoLas expresiones regulares son tus amigos:
Ahora use
gsub()
con el patrón de reemplazo más simple posible: cadena vacía:fuente
require(stringr);group$groupNoE <- str_replace(group$group, "e", "")
str_replace
ajustasub
, por lo que solo reemplazará la primera aparición del patrón. Tendrías que usarlostr_replace_all
si quisieras el mismo comportamiento quegsub
.Resumiendo 2 formas de reemplazar cadenas:
1) uso
gsub
2) Usa el
stringr
paqueteAmbos producirán el resultado deseado:
fuente
No necesita crear un marco de datos a partir del vector de cadenas, si desea reemplazar algunos caracteres en él. Las expresiones regulares son una buena opción, ya que @Andrie y @Dirk Eddelbuettel ya lo han mencionado.
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:
esto producirá
fuente
gsub("\\.", " ", ctr_names)
Usa el paquete stringi :
fuente
fuente