IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Comparaison de dates


Sujet :

R

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 25
    Par défaut Comparaison de dates
    Bonjour à tous

    j'aimerai comparer des dates les une après les autres dans une boucle pour voir si le temps écoulé entre deux lignes est bien de 5 minutes ce que j'ai trouvé c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    laps_temps<-5
    temps<-laps_temps*60
    as.Date(temps)
    ##pour ces premières instructions j'ai une erreur disant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Error in as.Date.numeric(as.numeric(temps)) : 'origin' doit être spécifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    un<-unique(user$date)
    for(i in seq_along(un))
    {
      diff_time<-seq(as.POSIXct(un[i+1])-as.POSIXct(un[i]))
    }
    ##et cella ne marche pas du tout donc

    serrait-il possible de votre part de m'aiguiller si l'un d'entre vous l'a déjà fait et a des proposition je suis preneuse

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 25
    Par défaut
    j'ai pensé grâce à la fonction as.Date.numeric() grâce à la library (zoo) deja de convertir les 5minutes en date pour avoir quelque chose de type
    00:05:00 pour que je puisse par la suite l'utilisé mais malheureusement ça me retourne une date type

    (1987-05-18) ce que je ne désirais pas du tout

  3. #3
    Membre éclairé Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Par défaut
    Salut,

    As-tu essayé la fonction "diff" ?

    Si tu as des dates de ce type dans un vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > dates
    [1] "2014-05-29 22:53:31 CEST" "2014-05-29 22:58:31 CEST" "2014-05-29 23:04:31 CEST"
    En utilisant la fonction diff sur ces dernières, tu obtiens cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    > diff(dates)
    Time differences in mins
    [1] 5 6
    attr(,"tzone")
    La différence entre la 1ere date et la 2ème est de 5 minutes.
    La différence entre la 2ème date et la 3ème est de 6 minutes.

    Voila qui pourra peut être t'aider,

    Yoan

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 25
    Par défaut
    Je teste le code que tu m'as envoyé et qui répond parfaitement à ma question mais il affiche une erreur qui est celle ci
    Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : 
      non-numeric argument to binary operator
    et une seconde erreur
    Error in attr(, "tzone") : argument 1 is empty
    je ne comprends pas car j'ai essayé exactement ton exemple :s

  5. #5
    Membre éclairé Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Par défaut
    Pour la seconde erreur, je pense que tu as essayé d'exécuter la ligne
    En fait, cette ligne fait parfois partie du résultat de la fonction "diff", la seule ligne que tu as besoin d'exécuter c'est
    Pour la 1ère erreur, je pense que ça vient du type de ta Date.
    Il faut que le type soit en POSIXlt pour que diff fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    > date1 = "2010-02-02 20:00:00"
    > date2 = "2010-02-02 20:05:00"
    > dates <- (c(date1, date2))
     
    > diff(dates)
    Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : 
      non-numeric argument to binary operator
    Ci-dessus, on a ton erreur car le type n'est pas le bon
    Tandis que si on modifie le type...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    > dates = as.POSIXlt(dates)
    > diff(dates)
    Time difference of 5 mins
    Voila, j'espère que c'est bon,

    Yoan

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 25
    Par défaut
    J'avais essayé de faire le as.POSIXct(dates) mais ça ne marchait pas. Maintenant que j'ai essayé ce que tu m'as envoyé c'est exactement ce dont j'avais besoin et ça marche.

    Je te remercie infiniment Yoan73 ^^

  7. #7
    Membre éclairé Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Par défaut
    Je t'en prie c'est un plaisir^^

    Oui, il y a une différence entre POSIXct et POSIXlt. C'est surement pour ça que ça ne fonctionnait pas !

    Voir http://www.cyclismo.org/tutorial/R/time.html

    Bon courage pour la suite,

    Yoan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison de dates javascript
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2005, 08h45
  2. comparaison de dates
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2005, 16h12
  3. comparaison de date
    Par nickoshiba dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2005, 15h48
  4. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo