Restar horas del tiempo en R

Los objetos de tiempo en el lenguaje de programación R se pueden declarar utilizando la clase POSIXct, que ofrece una manipulación y almacenamiento rápidos de dichos objetos. Los paquetes externos en R también ayudan a trabajar con la hora y las fechas y permiten realizar operaciones aritméticas directas y de comparación con ellos. 

Método 1: usar 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, utilizando el método as.POSIXct(fecha) en R. Dado que las fechas se almacenan en segundos, la resta se puede realizar convirtiendo primero las horas y los minutos en unidades de segundos. también.

1 hora = 1 * 60 * 60 segundos

1 minuto = 1 * 60 segundos

Sintaxis:

as.POSIXct (fecha, formato)

El resultado se devuelve como un objeto de fecha y hora con el respectivo número de horas restadas pertenecientes a la clase POSIXct. 

Ejemplo:

R

# declaring a time object
time1 <- as.POSIXct("08:32:07", format = "%H:%M:%S")
  
print ("Time")
print (time1)
  
# converting 3 hours to seconds
hrs <- 3 * 60 * 60
  
print  ("Subtracted Time")
print (time1 - hrs)

Producción

[1] "Time"
[1] "2021-05-19 08:32:07 UTC"
[1] "Subtracted Time"
[1] "2021-05-19 05:32:07 UTC"

Método 2: Uso del paquete de lubricación

El paquete Lubridate en R se usa 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 de acuerdo con la zona IST. El método hours() en R se usa para tomar un entero de entrada que indica el número de horas. Los objetos del paquete de lubricación 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. 

Ejemplo:

R

# getting required libraries
library(lubridate)
  
# getting current time
time <- Sys.time()
  
print("Current time")
print (time)
  
# subtracting hours
hrs <- hours(5)
mod_time <- time - hrs
  
print ("Subtracting 5 hours")
print (mod_time)

Producción

[1] "Current time" 
[1] "2021-05-19 16:31:37 IST" 
[1] "Subtracting 5 hours" 
[1] "2021-05-19 11:31:37 IST"

Método 3: Usar el método strptime()

El método strptime en R se usa para convertir directamente vectores de caracteres (de una variedad de formatos) al formato POSIXlt. strptime es más rápido que el enfoque anterior porque strptime() solo maneja la entrada de caracteres.

Sintaxis:

strptime(fecha, formato, tz = “”)

Parámetro:

fecha: la fecha en formato de caracteres

formato: el especificador de formato de la fecha de entrada

tz – zona horaria (opcional)

strptime() funciona de manera similar a los objetos POSIXct, donde todos los cálculos se realizan en términos de segundos. Además, se devuelve la fecha, que es esencial en los casos en que la resta de ciertas horas da como resultado el cambio de fecha también. 

Ejemplo:

R

# declaring a time object
time1 <- strptime("00:32:07", format = "%H:%M:%S")
print ("Time")
print (time1)
  
# converting 5 hours to seconds
hrs <- 5 * 60 * 60
print  ("Subtracted Time")
print (time1 - hrs)

Producción

[1] "Time" 
[1] "2021-05-19 00:32:07 IST"
[1] "Subtracted Time" 
[1] "2021-05-18 19:32:07 IST"

Publicación traducida automáticamente

Artículo escrito por yippeee25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *