Hi All,

I'm trying to write a function to automatically split long strings so they
will appear nicely in a chart i'm trying to create,

Say i have a string

title <- "some variety of words that are descriptive"

In this instance i want to place carriage return where there is a space just
prior to a specified number of characters (in this case 15)

title.length <- nchar(title)
no.splits <- floor(title.length / 15)
space.title <- c(gregexpr("[[:space:]]", title)[[1]])

space.title # This tells me the position of all spaces in the title
[1]  5 13 16 22 27 31
> no.splits # This tells me how many carriage returns i will need
[1] 2
> title.length # this tells me teh total length of the title string
[1] 42

I can then check to see where the last value is for each string i.e. where i
should make the break with (no.splits * characters (i.e 15)
 15 < space.title ##(15 * 1 split)
[1] FALSE FALSE  TRUE  TRUE  TRUE  TRUE
> 30 < space.title  ## (15 *2 splits)
[1] FALSE FALSE FALSE FALSE FALSE  TRUE
>

(I'm guessing i need to create some loop or apply here)

So i know i need to do a sub at positions 13 and 27 of "" to "\n"

So my final output would appear as
title <- "some variety\nof words that are\ndescriptive"

But i'm getting stuck as to find a way to work out the the positions 13, 27
dynamically and returning them to use later
Can anyone offer any advise?

Thanks All.

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to