Similar a @Matthew_Plourde usando gsub
Sin embargo, usando un patrón que recortará a cero caracteres, es decir, devolverá "" si la cadena original es más corta que la cantidad de caracteres a cortar:
cs <- c("foo_bar","bar_foo","apple","beer","so","a")
gsub('.{0,3}$', '', cs)
# [1] "foo_" "bar_" "ap" "b" "" ""
La diferencia es que el {0,3}cuantificador indica de 0 a 3 coincidencias, mientras que {3}requiere exactamente 3 coincidencias; de lo contrario, no se encuentra ninguna coincidencia, en cuyo caso gsubdevuelve la cadena original sin modificar.
NB usar {,3}sería equivalente a {0,3}, simplemente prefiero la última notación.
Consulte aquí para obtener más información sobre los cuantificadores de expresiones regulares:
https://www.regular-expressions.info/refrepeat.html
-3a-0conseguir el efecto deseado! Tengo una gran cantidad de datos con fechas, como:"2014-03-27 23:00:00 GMT" "2014-03-31 00:00:00 BST"- sí, dos zonas horarias juntas, y la función as.Date está devolviendo resultados inesperados (el día anterior para las fechas BST); por lo tanto, quería eliminar la marca de la zona horaria, resulta que tengo que hacer-0y desaparece, junto con las horas