El lenguaje de programación R proporciona una variedad de formas para tratar con datos de fecha y fecha/hora. La función incorporada del marco as.Date es responsable del manejo de fechas solo, la biblioteca chron en R maneja tanto fechas como horas, sin soporte para zonas horarias; mientras que las clases POSIXct y POSIXlt brindan soporte para manejar objetos de fecha y hora, así como zonas horarias. Se puede realizar una fácil conversión de objetos de fecha y hora a otros objetos relacionados con la fecha.
Método 1.: Usando el objeto POSIXct
Una string de fecha se puede convertir primero en objetos POSIXct y luego se puede realizar la aritmética básica fácilmente. Los objetos POSIXct facilitan el proceso de las operaciones matemáticas, ya que se basan en segundos como la unidad principal de gestión del tiempo. Las fechas se convierten a la zona horaria estándar, UTC. Un objeto de fecha de tipo string se puede convertir en un objeto POSIXct mediante el método as.POSIXct(fecha) en R.
Sintaxis:
as.POSIXct (fecha, formato)
Parámetro:
fecha: el objeto de fecha de string
formato: el especificador de formato de la fecha
Los objetos de fecha se almacenan como el número de días calculado a partir del 1 de enero de 1970, donde se utilizan números negativos para hacer referencia a fechas anteriores. Los objetos de fecha admiten aritmética básica directamente, donde los números enteros se suman o restan directamente de las fechas. Se suma o se resta un número de días directamente y se devuelve el formato de fecha estándar como salida. El objeto Fecha también puede especificar diferentes formatos para contener las fechas. El método as.Date() toma como entrada un objeto de fecha de string y lo convierte en un objeto de fecha.
Sintaxis:
as.Date(objeto de fecha de carácter)
El método format() en R se usa para formatear el objeto de fecha y hora especificado en el formato requerido.
Sintaxis:
formato (fechahora, formato =)
Ejemplo:
R
# declaring a datetime vector vec <- c("2021-05-08 08:32:07","2021-07-18 00:21:07", "2020-11-28 23:32:09","2021-05-11 18:32:07") # creating datetime column in the dataframe data_frame <- data.frame(datetime = as.POSIXct( vec, format = "%Y-%m-%d %H:%M:%S")) print ("Original DataFrame") print (data_frame) # extracting time data_frame$time <- format(as.POSIXct( data_frame$datetime),format = "%H:%M:%S") # extracting date data_frame$date <- as.Date (data_frame$datetime) print ("Modified DataFrame") print (data_frame)
Producción
[1] "Original DataFrame" datetime 1 2021-05-08 08:32:07 2 2021-07-18 00:21:07 3 2020-11-28 23:32:09 4 2021-05-11 18:32:07 [1] "Modified DataFrame" datetime time date 1 2021-05-08 08:32:07 08:32:07 2021-05-08 2 2021-07-18 00:21:07 00:21:07 2021-07-17 3 2020-11-28 23:32:09 23:32:09 2020-11-28 4 2021-05-11 18:32:07 18:32:07 2021-05-11
Método 2: Uso del paquete de lubricación
El paquete Lubridate en el lenguaje de programación R se utiliza para trabajar con objetos de fecha y hora. Facilita el análisis y la manipulación de los objetos y debe instalarse y cargarse en el espacio de trabajo.
La función Sys.time() en R se usa para obtener el objeto de fecha y hora actual según la zona IST. El método hours() en R se usa para tomar como entrada un número entero que indica el número de horas. Los objetos del paquete «lubridar» permiten la aritmética directa sobre sus diversos componentes, por lo tanto, la cantidad de horas se puede restar directamente del objeto de tiempo de lubricación. Un resultado es también un objeto que pertenece a esta clase.
La función Sys.Date() se utiliza para devolver la fecha del sistema.
Sintaxis: Sys.Date()
Parámetros:
No acepta ningún parámetro
El método ymd_hms() en R se usa para ingresar un objeto de fecha y hora en el espacio de trabajo.
Ejemplo:
R
library("lubridate") # declaring a datetime vector vec <- c("2021-05-08 08:32:07","2021-07-18 00:21:07", "2020-11-28 23:32:09","2021-05-11 18:32:07") # creating datetime column in the dataframe data_frame <- data.frame(datetime = ymd_hms(vec)) print ("Original DataFrame") print (data_frame) # extracting time data_frame$time <- format(as.POSIXct( data_frame$datetime),format = "%H:%M:%S") # extracting date data_frame$date <- as.Date (data_frame$datetime) print ("Modified DataFrame") print (data_frame)
Producción
[1] "Original DataFrame" datetime 1 2021-05-08 08:32:07 2 2021-07-18 00:21:07 3 2020-11-28 23:32:09 4 2021-05-11 18:32:07 [1] "Modified DataFrame" datetime time date 1 2021-05-08 08:32:07 08:32:07 2021-05-08 2 2021-07-18 00:21:07 00:21:07 2021-07-17 3 2020-11-28 23:32:09 23:32:09 2020-11-28 4 2021-05-11 18:32:07 18:32:07 2021-05-11