Intentando extraer la fecha de una marca de tiempo R.
Tengo un df con columnas:
id = c (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
time = c ("2020-12-31 16:00:00 PST", "2020-12-31 16:00:00 PST", "2020-12-31 16:00:00 PST", "2020-12-31 16:00:01 PST", "2020-12-31 16:00:01 PST", "2020-12-31 16:00:02 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST")
df = data.frame (id, time)
Extraje la hora usando la función anytime () en mi columna original de marcas de tiempo, por lo que estos valores son dobles. Me gustaría mantener solo la fecha en la columna y quitar la hora y la zona horaria. Por ejemplo, el primer valor en la columna de tiempos sería “2020-12-31”. ¿Hay alguna manera rápida de hacer esto?
Originalmente estaba haciendo:
df$'date' = as.character(anytime(df$time))
df = df%>%
mutate(date = strsplitfixed (df$date, ""), "%Y-%m-%d", 2))%>%
mutate(date = as.Date (date))
Sin embargo, tarda mucho tiempo en convertir cada valor a una cadena y luego dividirlo según el espacio y luego volver a convertir las fechas en formato de fecha (lo que también está causando un problema con las dimensiones, ya que la columna de datos solo muestra las fechas, pero convertir esa columna a as.Date() está mostrando un problema). ¿Hay alguna manera más rápida de hacer esto? ¡Gracias!
davy.ai
Puede utilizar el paquete
lubridate
para extraer rápidamente la fecha del registro de tiempo. Puede utilizar la funciónymd()
para convertir el registro de tiempo a un objeto de fecha y luego utilizar la funciónas.Date()
para convertir el objeto de fecha a una fecha.