Подобно @Matthew_Plourde с использованием gsub
Однако при использовании шаблона, который обрезает до нуля символов, т.е. возвращает "", если исходная строка короче, чем количество символов, которые нужно вырезать:
cs <- c("foo_bar","bar_foo","apple","beer","so","a")
gsub('.{0,3}$', '', cs)
# [1] "foo_" "bar_" "ap" "b" "" ""
Разница в том, что {0,3}квантификатор указывает от 0 до 3 совпадений, тогда как {3}требует ровно 3 совпадений, иначе совпадение не найдено, и в этом случае gsubвозвращается исходная неизмененная строка.
NB использование {,3}было бы эквивалентно {0,3}, я просто предпочитаю последнее обозначение.
См. Дополнительную информацию о квантификаторах регулярных выражений:
https://www.regular-expressions.info/refrepeat.html
-3на,-0чтобы добиться желаемого эффекта! У меня много данных с датами, например:"2014-03-27 23:00:00 GMT" "2014-03-31 00:00:00 BST"- да, два часовых пояса вместе, а функция as.Date возвращает неожиданные результаты (на день раньше для дат BST) - поэтому я хотел удалить отметку часового пояса, оказывается, мне нужно делаю-0и он исчезает вместе с часами