fonction pour créer des timestamps

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

fonction pour créer des timestamps

Messagepar Julien Demeaux » 07 Fév 2018, 21:25

Bonjour,
Je travaille sur un df qui comporte une variable "time". Les données de cette variable apparaissent sous le format "mm:ss".
Malheureusement, R convertit ce format en factor et je ne trouve pas la fonction adéquate pour revenir à un format "mm:ss" lisible et compréhensible par R. Toutes les fonctions que j'ai essayé semblent avoir besoin d'autres infos pour convertir correctement les données de cette variable (heure, jour, time zone, etc.).
Il s'agit ici d'un temps écoulé depuis le début d'une expérience.
Savez-vous quelle fonction je devrais utiliser (en considérant df mon data frame et time la variable, donc df$time) ?
Merci

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Re: fonction pour créer des timestamps

Messagepar Dominique Soudant » 08 Fév 2018, 07:24

Mes conseils
Importe des fichiers au format txt ou csv
Lors de ton importation (read.delim, read.csv etc.) utilise l'argument stringsAsFactor=FALSE pour que justement ce qui est identifié comme chaîne de caractères ne soit pas automatiquement transformé en facteur.

Pour ton pb tout de suite, je me demande si un df$Time <- as.character(df$Time) te permettrait de récupérer tes heures au format caractère. Pour la transformation en heure je commencerai par regarder du coté de as.Date.

@+

Guillaume Devailly
Messages : 28
Enregistré le : 22 Déc 2017, 12:31

Re: fonction pour créer des timestamps

Messagepar Guillaume Devailly » 08 Fév 2018, 08:36

Vous pouvez aussi regarder du coté du package lubridate, notament la fonction ms() :

Code : Tout sélectionner

> lubridate::ms(factor(c("12:56", "15:23")))
[1] "12M 56S" "15M 23S"

Bertrand Vassor
Messages : 46
Enregistré le : 18 Sep 2017, 10:18

Re: fonction pour créer des timestamps

Messagepar Bertrand Vassor » 08 Fév 2018, 13:28

Bonjour,

Peut-être une piste avec :

Code : Tout sélectionner

> a <- (factor(c("12:56", "15:23")))
> library(hms)
> parse_hm(a)
12:56:00
15:23:00

cdlt.BV

Marine Duperat
Messages : 25
Enregistré le : 14 Avr 2016, 07:54

Re: fonction pour créer des timestamps

Messagepar Marine Duperat » 08 Fév 2018, 13:47

Bonjour,

j'ai eu le soucis il y a deux jours avec un TIMESTAMP type " YYYY-MM-DD HH:MM:SS.ms "
Le package lubridate m'a beaucoup facilité la gestion des dates et heures ;)

https://cran.r-project.org/web/packages/lubridate/lubridate.pdf
Il existe également une "Cheat sheet" bien détaillée sur le sujet que tu trouveras facilement sur google en tapant Rstudio Cheat sheet

Je ne sais pas si ça peut t'aider mais voici mon code

Code : Tout sélectionner

data$TIMESTAMP<-as_datetime(data$TIMESTAMP, tz="America/New_York")  # là je définis ma time zone - je suis à Quebec
data$TIMESTAMP <- as.POSIXct(data$TIMESTAMP, format = "%d/%m/%Y %H:%M:%OS")  # là je définis le format que je veux pour mon timestamp

# NB : %OS , c'est pour avoir des fractions de secondes, si tu as juste besoin de secondes "S" fait l'affaire
Marine.

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

Re: fonction pour créer des timestamps

Messagepar Julien Demeaux » 09 Fév 2018, 04:11

Merci pour vos nombreaux retours ! J'ai utilisé lubridate et ça semble fonctionner.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité