Este es más un consejo que una respuesta específica, pero mi sugerencia es convertir las fechas en variables de fecha inmediatamente, en lugar de mantenerlas como cadenas. De esta manera, puede usar funciones de fecha (y hora) en ellos, en lugar de intentar usar soluciones muy problemáticas.
Como se señaló, el paquete lubridate tiene buenas funciones de extracción.
Para algunos proyectos, he descubierto que unir las fechas desde el principio es útil: cree variables de año, mes, día (del mes) y día (de la semana) para comenzar. Esto puede simplificar resúmenes, tablas y gráficos, porque el código de extracción está separado del código de resumen / tabla / gráfico, y porque si necesita cambiarlo, no tiene que implementar esos cambios en varios puntos.
format
para extraer el 'año'gsub(".*/","",df$Date)
substr(as.character(....), 7, 10)
lubridate::year
también debería hacer el truco una vez que los datos estén en formato 'Fecha' como lo sugiere @akrun.Date
y usar unaformat
u otras funciones para extraer partes de ella. Por ejemplox <- as.Date("01/01/2009", format = "%m/%d/%Y"); lubridate::year(x)
,.