Если вы хотите заменить буквы, которые появляются по крайней мере 3 раза (например), вот мое решение (используйте {2,}
:
gsub("([[:alpha:]])\\1{2,}", "\\1", "Buennaaaa Suerrrtee")
#[1] "Buenna Suertee"
Как вы можете видеть, 4 "а" былиуменьшено до 1 a, 3 r уменьшено до 1 r, но значения 2 n и 2 e не изменились. Как указано выше, вы можете заменить [[: alpha:]] любой комбинацией [a-zA-KM-Z] или аналогичный, и даже используйте оператор "или" | в квадратных скобках [y | Q], если вы хотите, чтобы ваш код влиял только на повторения y и Q.
gsub("([a|e])\\1{2,}", "\\1", "Buennaaaa Suerrrtee")
# [1] "Buenna Suerrrtee"
# triple r are not affected and there are no triple e.
ЕслиВы хотите заменить повторения, по крайней мере, n раз на один и тот же символ, затем используйте {n-1,}
. Если вы хотите заменить эти n-повторения только 2 раз (например)этот символ, используйте "\\1\\1"
в качестве замены.