Search code examples
rlineadditionfind-occurrences

R add newlines to every nth occurrence of blank


Mytext is a long string delimited by blank space.

Mytextsample <- "aaaaabb cccdddd eee adssdada ooeoeo ososs ksdkd
ooeresso osososososos krrr dkdkkd odlcjs kdcmcmc ddddd dmssss"

I tried to add a new line every 10th blank using regular expressions How can I use a text replace function such as gsub or str_replace?


Solution

  • This solution first uses strsplit() your string into a vector at each space, split() it after every 10th item and uses paste0() to reassemble each level using sapply():

    Mytextsample <- "aaaaabb cccdddd eee adssdada ooeoeo ososs ksdkd
      ooeresso osososososos krrr dkdkkd odlcjs kdcmcmc ddddd dmssss"
    
    dat <- unlist(strsplit(Mytextsample, " ")) # unlist is here to convert to a vector
    dat <- split(dat, ceiling(seq_along(dat)/10))
    
    out <- sapply(dat, function(x) paste0(x, collapse = " "))
    out