try gregexpr('b+', target_string)
which looks for one or more b characters, then get the attribute "match.length" On Fri, Dec 2, 2022, 18:56 Evan Cooch <evan.co...@gmail.com> wrote: > Was wondering if there is an 'efficient/elegant' way to do the following > (without tidyverse). Take a string > > abaaabbaaaaabaaab > > Its easy enough to count the number of times the character 'b' shows up > in the string, but...what I'm looking for is outputing the 'intervals' > between occurrences of 'b' (starting the counter at the beginning of the > string). So, for the preceding example, 'b' shows up in positions > > 2, 6, 7, 13, 17 > > So, the interval data would be: 2, 4, 1, 6, 4 > > My main approach has been to simply output positions (say, something > like unlist(gregexpr('b', target_string))), and 'do the math' between > successive positions. Can anyone suggest a more elegant approach? > > Thanks in advance... > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.