计算字符串中连续字母的最大值

Pau*_*ula 5 regex string r string-matching stringr

我有这个向量:

vector <- c("XXXX-X-X", "---X-X-X", "--X---XX", "--X-X--X", "-X---XX-", "-X--X--X", "X-----XX", "X----X-X", "X---XX--", "XX--X---", "---X-XXX", "--X-XX-X")
Run Code Online (Sandbox Code Playgroud)

我想检测出现 X 的最大连续次数。所以,我的预期向量是:

4, 1, 2, 1,2, 1, 2, 1, 2, 2, 3, 2
Run Code Online (Sandbox Code Playgroud)

Ron*_*hah 4

在基本 R 中,我们可以将每个字符拆分vector为单独的字符,然后使用rle查找max“X”的连续长度。

sapply(strsplit(vector, ""), function(x) {
   inds = rle(x)
   max(inds$lengths[inds$values == "X"])
})

#[1] 4 1 2 1 2 1 2 1 2 2 3 2
Run Code Online (Sandbox Code Playgroud)