Я пытаюсь посчитать количество точек в символьной строке.
Я пытался использовать str_count, но вместо этого я получаю количество букв строки.
str_count
ex_str <- "This.is.a.string" str_count(ex_str, '.') nchar(ex_str)
. является специальным regex символом, поэтому вам нужно его избежать:
.
regex
str_count(ex_str, '\\.') # [1] 3
Используя только базовую букву R, вы можете сделать:
nchar(gsub("[^.]", "", ex_str))
Использование stringi:
stringi
stri_count_fixed(ex_str, '.')
Вы также можете использовать базовую функцию gregexpr:
gregexpr
sum(gregexpr(".", ex_str, fixed=TRUE)[[1]] > 0) [1] 3
Другое решение base R может быть:
base R
length(grepRaw(".", ex_str, fixed = TRUE, all = TRUE)) [1] 3