2016-12-08 83 views
0

我有一個字符串'x'的向量基於一個更長的字符串 'mystring'(x的實際長度未知)。R:從左到右創建一個向量的元素組合

mystring <- "this is my vector" 
x <- strsplit(mystring, " ")[[1]] 

我要尋找一個包含以下字符串創建對象的一個​​優雅的方式(例如列表) :

string1 
string1 + string2 
string1 + string2 + string3 
string1 + string2 + string3 + string 4 
string2 
string2 + string3 
etc.: 

"this" 
"this is" 
"this is my" 
"this is my vector" 
"is" 
"is my" 
"is my vector" 
"my" 
"my vector" 
"vector" 

非常感謝!

回答

2

這聽起來像你想構建ngrams!有很多方法可以做到這一點;您可以考慮tokenizers庫。

例如,假設您通過4

library(tidyverse) 
library(tokenizers) 
mystring <- "this is my vector" 
map(1:4, ~tokenize_ngrams(mystring, lowercase = FALSE, n = .x)) %>% 
    unlist 
#> [1] "this"    "is"    "my"    
#> [4] "vector"   "this is"   "is my"    
#> [7] "my vector"   "this is my"  "is my vector"  
#> [10] "this is my vector" 
想正克1
相關問題