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 :

Date dans un dataframe


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Par défaut Date dans un dataframe
    J'ai des dates que j'arrive bien à convertir pour ensuite calculer des délais.
    Je fais comme suit en 2 fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    epid$SADMDTE<-as.Date(epid$SADMDTE, format="%d/%m/%Y") 
    epid$DSCHDTE<-as.Date(epid$DSCHDTE, format="%d/%m/%Y")
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    epid$SADMDTE<-as.Date(as.character(epid$SADMDTE, format="%d/%m/%Y")) 
    epid$DSCHDTE<-as.Date(as.character(epid$DSCHDTE, format="%d/%m/%Y"))
    j'arrive bien ensuite à calculer une durée comme suit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tempshospi<-epid$DSCHDTE-epid$SADMDTE
    mais par contre je n'arrive pas à calculer le 'tempshospi' et faire en sorte qu'il soit bien intégré dans le dataframe 'epid' afin que je puisse trouver les individus correspondants à des des durées de 'tempshospi' aberrantes.

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,

    Je ne vois pas vraiment l'intérêt du second bout de code... sauf si tu veux risquer que tes calculs soient faux !

    Je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    > epid <- data.frame(SADMDTE=c("14/12/2007", "01/05/2005"), DSCHDTE=c("15/02/2008", "23/10/2010"))
    
    > epid
         SADMDTE    DSCHDTE
    1 14/12/2007 15/02/2008
    2 01/05/2005 23/10/2010
    
    > epid$SADMDTE <- as.Date(epid$SADMDTE, format="%d/%m/%Y")
    > epid$DSCHDTE <- as.Date(epid$DSCHDTE, format="%d/%m/%Y")
    
    > epid$tempshospi <- epid$DSCHDTE - epid$SADMDTE
    
    > epid
         SADMDTE    DSCHDTE tempshospi
    1 2007-12-14 2008-02-15    63 days
    2 2005-05-01 2010-10-23  2001 days

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Par défaut
    Oui ça marche très bien.
    En fait, c'est ce que j'avais fait au début, mais je pensais que ça ne marchait pas car quand je faisais un 'fix' , le dataframe ne voulait pas s'afficher.
    Mais en faisant un 'head' ou un 'str' , je vois bien que les varaibles de durée ont bien été incorporées au dataframe.

    Comment se fait-il à votre avis que je ne peux faire de fix?

    R me renvoie :

    Erreur dans edit.data.frame(get(subx, envir = parent), title = subx, ...) :
    seuls les vecteurs et les facteurs peuvent être traîtés
    Merci d'avance.

  4. #4
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Je n'utilise pas fix... mais la réponse est dans le message d'erreur, il veut un vecteur, pas une data.frame

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 51
    Par défaut
    Ok, mais ce qui est bizarre, c'est que avant de faire les manips sur les dates, je pouvais très bien afficher ma dataframe en faisant un 'fix', alors qu'après il ne m'autorise plus à le faire?

  6. #6
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Alors c'est qu'il veut que chaque colonne de la data.frame contienne soit un vecteur soit un facteur. Les dates doivent avoir une structure de donnée plus complexe (je reconnais que ça m'étonne, il me semblait qu'en représentation interne ce ne sont ni plus ni moins que des réels).

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

Discussions similaires

  1. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 19h44
  2. insérer une date dans une table mssql
    Par ericmart dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/01/2004, 10h37
  3. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53
  4. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  5. Réponses: 3
    Dernier message: 19/03/2003, 15h19

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