2012-01-22 42 views
11

Tengo una cadena y deseo eliminar todos los símbolos no alfanuméricos y ponerlos en un vector. Así que esto:R eliminar símbolos no alfanuméricos de una cadena

"This is a string. In addition, this is a string!" 

se convertiría en:

>stringVector1 

"This","is","a","string","In","addition","this","is","a","string" 

He mirado en grep() pero no puede encontrar un ejemplo que coincide. ¿Alguna sugerencia?

Respuesta

26

aquí es un ejemplo:

> str <- "This is a string. In addition, this is a string!" 
> str 
[1] "This is a string. In addition, this is a string!" 
> strsplit(gsub("[^[:alnum:] ]", "", str), " +")[[1]] 
[1] "This"  "is"  "a"  "string" "In"  "addition" "this"  "is"  "a"  
[10] "string" 
+0

me di cuenta de que hay un espacio en la expresión regular entre los corchetes que terminan. ¿Para qué se usa eso? –

+1

@ B.Mr.W. conserva los espacios en la cadena para dividir en – mlegge

+1

Gracias, finalmente, no soy tímido para usar expresiones regulares en R 'gsub (" [^ [: alnum:] = \\.] "," "," Oh, bla, bla " bla. ¡Solo silencio! = 0.42 ")' es mucho mejor que acumular varios usos de la función 'gsub()' para reemplazar cada signo de puntuación por '" "'. –

Cuestiones relacionadas