77 votos

En la R, ¿cómo reemplazo el texto dentro de una cadena?

En la R, me gustaría eliminar los caracteres específicos de las cadenas dentro de un vector, de manera similar a la función "buscar y reemplazar" de Excel.

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

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

Empiezo con la primera columna; quiero producir la segunda columna quitando las "e":

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

122voto

Andrie Puntos 66979

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"

Que gsub es reemplazar cada ocurrencia de "e" con una cadena vacía "" .


Ver ?regexp o gsub para más ayuda.

20voto

Dirk Eddelbuettel Puntos 134700

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 usa gsub() con el patrón de sustitución 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>

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X