¿Cómo restar tiempo en R?

En este artículo, discutiremos cómo restar tiempo en el lenguaje de programación R.

Método 1: Usar el método difftime() en R

El método difftime() en R se usa para calcular la diferencia en las marcas de tiempo dadas. Se utiliza para devolver un objeto de la propia clase difftime acompañado del atributo units. Los objetos «difftime» solo admiten operaciones aritméticas limitadas sobre ellos, es decir, se pueden sumar o restar, y multiplicar o dividir por un vector numérico. El resultado devuelto por este método se basa en el valor de marca de tiempo del primer parámetro restado por el segundo parámetro, que es time1-time2. El resultado es positivo en caso de que el tiempo1 sea mayor que el tiempo2, 0 si los dos marcos temporales son iguales y negativo para el caso restante. 

Sintaxis: difftime(time1, time2, tz,units = c(“auto”, “segs”, “mins”, “hours”,”days”, “weeks”))

Parámetros:

  • time1 y time2: los objetos de fecha y hora o vectores numéricos
  • tz – zona horaria (opcional)
  • unidades: la especificación de unidades para realizar operaciones aritméticas

Tipo de retorno: un objeto difftime que aplica la aritmética en el objeto datetime

Ejemplo:

R

# declaring first datetime object
time1 <- "2019-08-25 17:18:24"                
  
# declaring second datetime object
time2 <- "2019-08-30 23:09:24"  
  
# declaring third datetimeobject 
time3 <-  "2019-08-22 23:09:24"
  
# calculating differences using 
# difftime between time1 and time2
print("TIME1 - TIME2 ")
  
# difference in hours
print ("Difference in hours : ")
difftime(time1,time2, units = "hours")
  
# difference in minutes
print ("Difference in minutes : ")
difftime(time1,time2,units = "mins")
  
# difference in seconds
print ("Difference in seconds : ")
difftime(time1, time2 ,units="secs")
print("TIME1 - TIME3 ")
  
# calculating differences using difftime
# between time1 and time3
# difference in hours
print ("Difference in hours : ")
difftime(time1, time3, units = "hours")
  
# difference in minutes
print ("Difference in minutes : ")
difftime(time1, time3, units = "mins")
  
# difference in seconds
print ("Difference in seconds : ")
difftime(time1, time3, units="secs")

Producción:

[1] "TIME1 - TIME2 "
[1] "Difference in hours : "
Time difference of -125.85 hours
[1] "Difference in minutes : "
Time difference of -7551 mins
[1] "Difference in seconds : "
Time difference of -453060 secs
[1] "TIME1 - TIME3 "
[1] "Difference in hours : "
Time difference of 66.15 hours
[1] "Difference in minutes : "
Time difference of 3969 mins
[1] "Difference in seconds : "
Time difference of 238140 secs

Método 2: 

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 a unidades de segundos. también.

1 hour = 1 * 60 * 60 seconds
1 min = 1 * 60 seconds

Ejemplo 1:

R

# declaring string type date
str_date <- "2021-04-01"
  
# converting to posixct date
pos_date <- as.POSIXct(str_date)
  
# printing original date
print ("Original Date : ")
print (pos_date)
  
# subtracting 15 seconds 
date <- pos_date - 15
print ("New Date")
print (date)

Producción:

[1] "Original Date : "
[1] "2021-04-01 UTC"
[1] "New Date"
[1] "2021-03-31 23:59:45 UTC"

Ejemplo 2:

R

# declaring string type date
str_date <- "2021-04-01"
  
# converting to posixct date
pos_date <- as.POSIXct(str_date)
  
# printing original date
print ("Original Date : ")
print (pos_date)
  
# subtracting 15 seconds 
secs = 15
  
# 25 minutes 
mins = 25 * 60
  
# 3 hr 
hrs = 3 * 60 * 60
date <- pos_date - (secs + mins + hrs)
print ("New Date")
print (date)

Producción:

[1] "Original Date : "
[1] "2021-04-01 UTC"
[1] "New Date"
[1] "2021-03-31 20:34:45 UTC"

Método 3: 

En lugar de realizar operaciones aritméticas directamente en las fechas POSIXct, podemos usar el método as.difftime() sobre este objeto, para restar las marcas de tiempo de las fechas disponibles. El método as.difftime() tiene la siguiente sintaxis: 

as.difftime(int , units = c("secs","hours","mins")

Ejemplo:

R

# declaring string type date
str_date <- "2021-04-01"
  
# converting to posixct date
pos_date <- as.POSIXct(str_date)
  
# printing original date
print ("Original Date : ")
print (pos_date)
  
# subtracting 15 seconds 
secs = 15
  
# 25 minutes 
mins = 28
  
# 3 hr 
hrs = 8
date <- pos_date - as.difftime(secs,units="secs") 
- as.difftime(mins,units="mins") 
- as.difftime(hrs,units="hours")
  
print ("New Date")
print (date)

Producción

[1] "Original Date : "
[1] "2021-04-01 UTC"
[1] "New Date"
[1] "2021-03-31 15:31:45 UTC"

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 *