Comment convertir une chaîne en Datetime dans R



Vous pouvez utiliser la syntaxe suivante pour convertir une chaîne en datetime dans R :

as.POSIXct(string_name, format="%Y-%m-%d %H:%M:%S", tz="UTC")

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique :

Exemple 1 : convertir une chaîne en Datetime

Le code suivant montre comment convertir une seule chaîne dans R en un format datetime :

#define string variable
string_x <- "2020-01-01 14:45:18"

#convert string variable to datetime variable
datetime_x <- as.POSIXct(string_x, format="%Y-%m-%d %H:%M:%S", tz="UTC")

#view new datetime variable
datetime_x

[1] "2020-01-01 14:45:18 UTC"

#view class of datetime variable 
class(datetime_x)

[1] "POSIXct" "POSIXt" 

Exemple 2 : convertir une colonne de chaînes en Datetime

Supposons que nous ayons le bloc de données suivant avec une colonne contenant une chaîne de dates et d’heures :

#define data frame
df <- data.frame(day=c("2020-01-01 14:45:18", "2020-02-01 14:00:11",
                            "2020-03-01 12:40:10", "2020-04-01 11:00:00"),
                 sales=c(13, 18, 22, 19))

#view data frame
df

                  day sales
1 2020-01-01 14:45:18    13
2 2020-02-01 14:00:11    18
3 2020-03-01 12:40:10    22
4 2020-04-01 11:00:00    19

Nous pouvons convertir cette colonne de chaînes en datetimes en utilisant la syntaxe suivante :

#convert column of strings to datetime
df$day <- as.POSIXct(df$day, format="%Y-%m-%d %H:%M:%S", tz="UTC")

#view class of 'day' column
class(df$day)

[1] "POSIXct" "POSIXt" 

Notez que dans ces exemples, nous avons utilisé un format datetime spécifique. Reportez-vous à cette page pour une documentation complète des formats datetime potentiels que vous pouvez utiliser.

Ressources additionnelles

Comment convertir un caractère en facteur dans R
Comment convertir un facteur en numérique dans R
Comment convertir une liste en vecteur dans R
Comment convertir une colonne de bloc de données en vecteur dans R

Ajouter un commentaire

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