2017-04-12 47 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

相关问题