R-迭代组合字符向量的连续元素,直到到达空字符串元素

问题描述:

我有一个由长字符串(字母数字+特殊字符)组成的字符向量,如下面所述。需要R-迭代组合字符向量的连续元素,直到到达空字符串元素

txt <- c(
     "Spicy jalapeno bacon ipsum dolor amet", 
     "tenderloin. pariatur quis", 
     "", 
     "consequat pancetta jerky", 
     "porchetta non chuck exercitation", 
     "laborum labore ball tip.", 
     "", 
     "", 
     "Duis swine turkey kielbasa. Strip ", 
     "steak ribeye laboris," 
     ) 

输出是

> txt 
[1] "Spicy jalapeno bacon ipsum dolor amet tenderloin. pariatur quis" 
[2] "consequat pancetta jerky porchetta non chuck exercitation laborum labore ball tip." 
[3] "Duis swine turkey kielbasa. Strip steak ribeye laboris," 

需要考虑的事项:
1.空字符串元件/ s的充当linebreakers。他们可以连续超过一个。
2.将两个元素连接在一起时,需要在两者之间添加空格。

+0

已经打破了我的头在嵌套了,而如果循环/语句,但要意识到有可能是一个更好的方式来做到这一点,尤其是考虑手头有大量数据(80,000个元素)。 –

其中一个方法可以做到这过多的:

library(dplyr) 
library(purrr) 

data_frame(txt=txt, grp=cumsum(txt=="")) %>% 
    group_by(grp) %>% 
    do(data_frame(joined=paste0(.$txt, collapse=" "))) %>% 
    mutate(joined=trimws(joined)) %>% 
    filter(joined != "") %>% 
    ungroup() %>% 
    select(joined) %>% 
    flatten_chr() 
## [1] "Spicy jalapeno bacon ipsum dolor amet tenderloin. pariatur quis"     
## [2] "consequat pancetta jerky porchetta non chuck exercitation laborum labore ball tip." 
## [3] "Duis swine turkey kielbasa. Strip steak ribeye laboris,"      
+0

我的确切思路!非常好 – Sotos

+0

这真棒..谢谢!我会花一小时试着理解这一点! –

+0

很酷。关键是要看'txt =“”'产生什么'cumsum(txt ==“”)'产生什么。不要犹豫,要求澄清。 – hrbrmstr