Evan, there are oodles of ways to do many things in R, and mcu of what the
tidyverse supplies can often be done as easily, or easier, outside it.
Before presenting a solution, I need to make sure I am answering the same
question or problem you intend.
Here is the string you have as an example:
s
Here's a function that can get the interval sizes for you.
getStringSegmentLengths <- function(s, delim, ...) {
nchar(unlist(strsplit(s, delim, ...))) + 1L
}
It uses strsplit to return a list of all the segments of the string
separated by delim. delim can be a regular expression and with ...,
You could split the string into letters and figure out which ones are �b�
which(strsplit(x, "")[[1]] == "b")
and then find the difference between each position, �anchoring� at position 0
> diff(c(0, which(strsplit(x, "")[[1]] == "b")))
[1] 2 4 1 6 4
From: R-help on behalf of Evan Cooch
Date:
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 wrote:
> Was wondering if there is an 'efficient/elegant' way to do the following
> (without tidyverse). Take a string
>
> abaaabbabaaab
>
Was wondering if there is an 'efficient/elegant' way to do the following
(without tidyverse). Take a string
abaaabbabaaab
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 '
5 matches
Mail list logo