Схожий на використання @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
повертається початковий, немодифікований рядок.
Примітка: використання {,3}
було б рівнозначно {0,3}
, я просто віддаю перевагу останнім позначенням.
Дивіться тут для отримання додаткової інформації про кількісні показники regex:
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
і він зникає разом із годинами