Ответ 1
Вы можете использовать strsplit для выполнения этой задачи.
string1 <- "This is my string"
strsplit(string1, " ")[[1]]
#[1] "This" "is" "my" "string"
У меня есть строка:
string1 <- "This is my string"
Я хотел бы преобразовать его в вектор, который выглядит так:
vector1
"This"
"is"
"my"
"string"
Как мне это сделать? Я знаю, что я мог бы использовать пакет tm
для преобразования в termDocumentMatrix
, а затем преобразовать в матрицу, но он будет алфавитными словами, и мне нужно, чтобы они оставались в том же порядке.
Вы можете использовать strsplit для выполнения этой задачи.
string1 <- "This is my string"
strsplit(string1, " ")[[1]]
#[1] "This" "is" "my" "string"
Немного отличается от Dason, но он будет разделен на любое количество пробелов, включая новые строки:
string1 <- "This is my
string"
strsplit(string1, "\\s+")[[1]]
В качестве дополнения мы также можем использовать unlist()
для создания вектора из данной структуры списка:
string1 <- "This is my string" # get a list structure
unlist(strsplit(string1, "\\s+")) # unlist the list
#[1] "This" "is" "my" "string"
Если вы просто извлекаете слова, разбивая их на пробелы, вот несколько приятных альтернатив.
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"
Try:
library(tm)
library("RWeka")
library(RWekajars)
NGramTokenizer(source1, Weka_control(min = 1, max = 1))
Это более сложное решение для вашей проблемы. strsplit с использованием подхода Sacha, как правило, просто отлично.