Comment soustraire des heures du temps dans R (avec des exemples)



Vous pouvez utiliser l’une des méthodes suivantes pour soustraire un certain nombre d’heures d’une heure dans R :

Méthode 1 : utiliser Base R

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - (4*3600)

Méthode 2 : utiliser le package Lubridate

library(lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours(4)

Les exemples suivants montrent comment utiliser chaque méthode avec le bloc de données suivant :

#create data frame
df <- data.frame(time=as.POSIXct(c('2022-01-03 08:04:15', '2022-01-05 14:04:15',
                                   '2022-01-05 20:03:53', '2022-01-06 03:29:13',
                                   '2022-01-06 06:15:00', '2022-01-07 10:48:11'),
                                   format='%Y-%m-%d %H:%M:%OS'),
                 sales=c(130, 98, 240, 244, 174, 193))

#view data frame
df

                 time sales
1 2022-01-03 08:04:15   130
2 2022-01-05 14:04:15    98
3 2022-01-05 20:03:53   240
4 2022-01-06 03:29:13   244
5 2022-01-06 06:15:00   174
6 2022-01-07 10:48:11   193

Remarque : Pour ajouter des heures à une date, remplacez simplement le signe de soustraction par un signe d’addition dans l’une des formules ci-dessus.

Exemple 1 : soustraire des heures du temps en utilisant la base R

Le code suivant montre comment créer une nouvelle colonne appelée subtract4 qui soustrait quatre heures de chaque valeur de la colonne time :

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - (4*3600)

#view updated data frame
df

                 time sales           subtract4
1 2022-01-03 08:04:15   130 2022-01-03 04:04:15
2 2022-01-05 14:04:15    98 2022-01-05 10:04:15
3 2022-01-05 20:03:53   240 2022-01-05 16:03:53
4 2022-01-06 03:29:13   244 2022-01-05 23:29:13
5 2022-01-06 06:15:00   174 2022-01-06 02:15:00
6 2022-01-07 10:48:11   193 2022-01-07 06:48:11

Notez que les valeurs de la nouvelle colonne subtract4 sont égales aux valeurs de la colonne time avec quatre heures soustraites.

Remarque : Nous utilisons (4*3600) dans la formule car les valeurs de temps sont stockées sous forme de secondes dans R. Puisqu’il y a 3 600 secondes dans une heure, nous devons multiplier 4 par 3 600 pour soustraire 4 heures.

Exemple 2 : Soustraire des heures du temps à l’aide du package Lubridate

Le code suivant montre comment utiliser la fonction hours() du package lubridate pour créer une nouvelle colonne appelée subtract4 qui soustrait quatre heures de chaque valeur de la colonne time :

library(lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours(4)

#view updated data frame
df

                 time sales           subtract4
1 2022-01-03 08:04:15   130 2022-01-03 04:04:15
2 2022-01-05 14:04:15    98 2022-01-05 10:04:15
3 2022-01-05 20:03:53   240 2022-01-05 16:03:53
4 2022-01-06 03:29:13   244 2022-01-05 23:29:13
5 2022-01-06 06:15:00   174 2022-01-06 02:15:00
6 2022-01-07 10:48:11   193 2022-01-07 06:48:11

Notez que les valeurs de la nouvelle colonne subtract4 sont égales aux valeurs de la colonne time avec quatre heures soustraites.

Notez que cette méthode produit les mêmes résultats que la méthode de base R.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment convertir une date en numérique dans R
Comment extraire le mois de la date dans R
Comment ajouter et soustraire des mois à une date dans R

Ajouter un commentaire

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