2017-04-12 20 views
0

這是示例代碼的開頭:存儲在向量所有字符串粘貼到一個字符串,這對於每個字符串向量列表中的

library(stringr) 

Sentences_vector1 <- as.data.frame(rbind("toto a titi", "tata c m tztz itutu", "toto z titi l k tutu h tyty"), stringsAsFactors=F) 
Sentences_vector2 <- as.data.frame(rbind("toto a titi", "tata c m tztz itutu", "toto z titi l k tutu h tyty"), stringsAsFactors=F) 
Sentences_vectors <- cbind(Sentences_vector1, Sentences_vector2) 

List_with_diff_nb_strings = str_match_all(Sentences_vectors$V1, "[a-zA-Z]{2,}") 

而現在,我想貼的所有字符串存儲在一個向量中的單個字符串,這對於列表中的每個字符串向量。請注意,矢量具有不同的長度。

List_concacenated_strings = sapply(List_with_diff_nb_strings,function (x) base::paste(x, sep = " ")) 

因此,我想獲得與內容,因爲這一個類似的結果:

list(c("toto titi"), c("tata tztz tutu"), c("toto titi tutu tyty")) 

...但它不工作,因爲我不能指定列,它們的數量列表的每行不同(字符向量具有不同的長度)。

也許是這樣的事實,是因爲在我的真實R代碼裏面,命令:

str(List_with_diff_nb_strings[[3]]) 

回報:

chr [1:4, 1] "toto" "titi" "tutu" "tyty" 

,而不是像這樣的 「簡單」 的載體:

chr [1:4] "toto" "titi" "tutu" "tyty" 

任何人都可以幫助我嗎?提前致謝。

+0

從中包'str_match_all()'?請編輯您的問題:http://stackoverflow.com/posts/43370511/edit – jogo

+0

完成。我是「stringr」庫。 – Syl87

回答

0

替換的代碼分別符合下列內容:

List_concacenated_strings = as.list(sapply(List_with_diff_nb_strings,function (x) base::paste(x, sep = " ",collapse=" "))) 

,你會得到你想要的輸出:

[[1]] 
[1] "toto titi" 

[[2]] 
[1] "tata tztz tutu" 

[[3]] 
[1] "toto titi tutu tyty" 

PS:這應該是對堆棧溢出

+0

謝謝Eldioo。有用! – Syl87

相關問題