Comment ajouter ou soustraire un intervalle de temps à une date/heure dans R ?

Les objets temporels dans R peuvent être déclarés soit en utilisant la classe POSIXct, qui offre une manipulation et un stockage rapides de ces objets. Les packages externes dans R aident également à travailler avec l’heure et les dates et permettent d’effectuer des comparaisons et des opérations arithmétiques directes sur eux. Dans cet article, nous allons voir comment ajouter et soustraire un intervalle de temps à un DateTime en programmation R.

Méthode 1 : Utilisation de l’objet POSIXct

Une chaîne de date peut d’abord être convertie en objets POSIXct, puis une arithmétique de base peut être effectuée facilement. Les objets POSIXct facilitent le processus des opérations mathématiques car ils s’appuient sur les secondes comme unité principale de gestion du temps. Les dates sont converties dans le fuseau horaire standard, UTC. Un objet date de type chaîne peut être converti en objet POSIXct, en utilisant la méthode as.POSIXct(date) dans R. Étant donné que les dates sont stockées en termes de secondes, la soustraction, ainsi que l’addition, peuvent être effectuées en convertissant d’abord le heures et minutes aux unités de secondes aussi. Les opérateurs mathématiques peuvent directement être utilisés pour ajouter divers composants de temps à l’objet date, qui appartient à la classe POSIXct.

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

Syntaxe: as.POSIXct ( date , format)

Arguments :

date – L’objet de date de chaîne

format – Le spécificateur de format de la date

Code:

R

time1 <- as.POSIXct("2021-05-08 08:32:07",

                    format = "%Y-%m-%d %H:%M:%S")

 

print ("Original DateTime")

print (time1)

 

mins <- 20 * 60

print  ("Adding 20 mins to DateTime")

print (time1 + mins)

 

hrs <- 3 * 60 * 60

print  ("Subtracting 3 hours from DateTime")

 

print (time1 - hrs)

Production:

[1] "Original DateTime"
[1] "2021-05-08 08:32:07 UTC"
[1] "Adding 20 mins to DateTime"
[1] "2021-05-08 08:52:07 UTC"
[1] "Subtracting 3 hours from DateTime"
[1] "2021-05-08 05:32:07 UTC"

Méthode 2 : Utilisation du package de lubrification

Le package Lubridate dans R est utilisé pour travailler avec des objets de date et d’heure. Il facilite l’analyse et la manipulation des objets et doit être installé et chargé dans l’espace de travail par la commande suivante :

install.packages("lubridate")

La fonction Sys.time() dans R est utilisée pour récupérer la date et l’heure actuelles selon la zone IST. La méthode hours() dans R est utilisée pour prendre en entrée un entier indiquant le nombre d’heures. Les objets de package “lubrifier” permettent une arithmétique directe sur ses différents composants, par conséquent, le nombre d’heures peut être directement soustrait de l’objet de temps de lubrification. Un résultat est aussi un objet appartenant à cette classe.

Code:

R

library(lubridate)

 

time <- Sys.time()

print("Current time")

print (time)

 

hrs <- hours(5)

 

print ("Subtracting 5 hours")

mod_time <- time - hrs

print (mod_time)

secs <- seconds(17)

 

print ("Adding 17 seconds")

mod_time <- time + secs

print (mod_time)

Production

[1] "Current time" 
[1] "2021-05-22 03:27:02 IST" 
[1] "Subtracting 5 hours" 
[1] "2021-05-21 22:27:02 IST" 
[1] "Adding 17 seconds" 
[1] "2021-05-22 03:27:19 IST"

Méthode 3 : Utilisation de la méthode strptime()

La méthode strptime dans R est utilisée pour convertir directement des vecteurs de caractères (de divers formats) au format POSIXlt. strptime est plus rapide que l’approche précédente, car strptime ne gère que la saisie de caractères.

Syntaxe: strptime(date, format, tz = “”)

Arguments :

date – La date au format caractère

format – Le spécificateur de format de la date d’entrée

tz – fuseau horaire (facultatif)

strptime() fonctionne de manière similaire aux objets POSIXct, où tous les calculs sont effectués en termes de secondes.

Code:

R

time1 <- strptime("2021-07-07 00:32:07",

                  format = "%Y-%m-%d %H:%M:%S")

print ("Time")

print (time1)

 

hrs <- 5 * 60 * 60

print  ("Subtracting 5 hours")

print (time1 - hrs)

 

mins <- 24 * 60

secs <- 48 * 60 * 60

print  ("Modified Time")

print ((time1 + mins) - secs)

Production:

[1] "Time"
[1] "2021-07-07 00:32:07 UTC"
[1] "Subtracting 5 hours"
[1] "2021-07-06 19:32:07 UTC"
[1] "Modified Time"
[1] "2021-07-05 00:56:07 UTC"

Explication: La soustraction de 5 heures, entraîne le retour de la date précédente. Dans le deuxième scénario, le nombre respectif de minutes et de secondes est calculé.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut