R конвертировать строку в вектор tokenize с помощью ""

У меня есть строка:

string1 <- "This is my string"

Я хотел бы преобразовать его в вектор, который выглядит так:

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

Как мне это сделать? Я знаю, что я мог бы использовать пакет tm для преобразования в termDocumentMatrix, а затем преобразовать в матрицу, но он будет алфавитными словами, и мне нужно, чтобы они оставались в том же порядке.

Ответ 1

Вы можете использовать strsplit для выполнения этой задачи.

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

Ответ 2

Немного отличается от Dason, но он будет разделен на любое количество пробелов, включая новые строки:

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

Ответ 3

В качестве дополнения мы также можем использовать unlist() для создания вектора из данной структуры списка:

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

Ответ 4

Если вы просто извлекаете слова, разбивая их на пробелы, вот несколько приятных альтернатив.

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" 

Ответ 5

Try:

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

Это более сложное решение для вашей проблемы. strsplit с использованием подхода Sacha, как правило, просто отлично.