2012-08-13 16 views
12

Ho una stringa:R convertire la stringa al vettore tokenize usando ""

string1 <- "This is my string" 

Vorrei convertirlo in un vettore che assomiglia a questo:

vector1 
"This" 
"is" 
"my" 
"string" 

Come faccio a fare questo ? So che potrei usare il pacchetto tm per convertire in termDocumentMatrix e quindi convertire in una matrice, ma sarebbe alfabetizzare le parole e ho bisogno che restino nello stesso ordine.

+0

Dason fornisce una buona soluzione, ma se il testo è più complicato di così (cioè la punteggiatura ecc) avrete bisogno di un po 'di approccio più avanzata. –

+0

possibile duplicato: http://stackoverflow.com/questions/520810/does-r-have-quote-like-operators-like-perls-qw – GSee

+0

GSee che sta chiedendo qualcosa di diverso. screechOwl vuole dividere un vettore di un singolo carattere in parole dove, come il link che fornisci, indica che il poster vuole inserire parole non quotate che saranno convertite in carattere. –

risposta

21

È possibile utilizzare strsplit per eseguire questa operazione.

string1 <- "This is my string" 
strsplit(string1, " ")[[1]] 
#[1] "This" "is"  "my"  "string" 
10

Leggermente diverso da Dason, ma questo si dividerà per qualsiasi quantità di spazio bianco tra cui nuove righe:

string1 <- "This is my 
string" 
strsplit(string1, "\\s+")[[1]] 
1

Prova:

library(tm) 
library("RWeka") 
library(RWekajars) 
NGramTokenizer(source1, Weka_control(min = 1, max = 1)) 

Si tratta di una soluzione carrozzabile per il vostro problema . strsplit usando l'approccio di Sacha generalmente va bene.

3

Come supplemento, possiamo anche usare unlist() per la produzione di un vettore da una data struttura lista:

string1 <- "This is my string" # get a list structure 
unlist(strsplit(string1, "\\s+")) # unlist the list 
#[1] "This" "is"  "my"  "string" 
2

Se siete semplicemente estraendo le parole dalla scissione sugli spazi, qui un paio di alternative belle .

string1 <- "This is my string" 

scan(text = string1, what = "") 
# [1] "This" "is"  "my"  "string" 

library(stringi) 
stri_split_fixed(string1, " ")[[1]] 
# [1] "This" "is"  "my"  "string" 
stri_extract_all_words(string1, simplify = TRUE) 
#  [,1] [,2] [,3] [,4]  
# [1,] "This" "is" "my" "string" 
stri_split_boundaries(string1, simplify = TRUE) 
#  [,1] [,2] [,3] [,4]  
# [1,] "This " "is " "my " "string" 
Problemi correlati