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 = TRUEHaría esto más rápido.fixed=TRUEevita 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?eque 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_replaceajustasub, por lo que solo reemplazará la primera aparición del patrón. Tendrías que usarlostr_replace_allsi quisieras el mismo comportamiento quegsub.Resumiendo 2 formas de reemplazar cadenas:
1) uso
gsub2) Usa el
stringrpaqueteAmbos 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