字符串计数R中给出错误答案的所有字符串


A<-  c('C-C-C','C-C', 'C-C-C-C')
library(stringr)
B<- str_count(A, "C-C")
df<- data.frame(A,B)
A        B (expected)   B(actual) 
C-C-C      2              1
C-C        1              1
C-C-C-C    3              2

我正在尝试计算所有的转换,但是,我得到了错误的答案。有人能建议如何解决这个问题吗?

您期望字符串被允许重叠,但事实并非如此。为此,您需要进行前瞻

str_count(A, "C(?=-C)")
#[1] 2 1 3

或计数-:

str_count(A, "-")
#[1] 2 1 3

或在基础中:

lengths(gregexpr("C(?=-C)", A, perl=TRUE))
#[1] 2 1 3

str_count包装stringi::stri_count。虽然它不允许您指定可选的参数,但您可以直接调用stri_count

stringi::stri_count(str = A, pattern = "C-C", fixed = stringi::stri_opts_fixed(overlap = TRUE))

base R中使用gsubnchar

nchar(gsub("[^-]+", "", A))
#[1] 2 1 3

相关内容

  • 没有找到相关文章

最新更新