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 :

Automatiser des lignes de codes R : transformer colonne caractère au format Date


Sujet :

R

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 33
    Points
    33
    Par défaut Automatiser des lignes de codes R : transformer colonne caractère au format Date
    Bonjour à tous,
    Et merci pour votre aide.

    J'importe plusieurs tables SAS dans R et je n'arrive pas à automatiser le changement de classe de l'objet. A l'import, les champs date sont en caractère, je voudrais les transformer au format date de manière la plus automatisée possible.

    Donc automatiser le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    df_nom <- data.frame(code="Z01",datedeb_nom="2015-09-07",datefin_nom="2016-09-07", BDA="2015-09-07 10:24:29", stringsAsFactors = FALSE )
    df_poste <- data.frame(code="Z02", datedeb_poste="2015-09-07",datefin_poste="2015-09-07", BDA="2015-09-07 10:24:29", stringsAsFactors = FALSE)
     
    df_nom$datedeb_nom <- as.Date(df_nom$datedeb_nom)
    df_nom$datefin_nom <- as.Date(df_nom$datefin_nom)
    df_nom$BDA <- as.POSIXct(df_nom$BDA, format="%Y-%m-%d %H:%M:%S" )
     
    df_poste$datedeb_poste<- as.Date(df_poste$datedeb_poste)
    df_poste$datefin_poste<- as.Date(df_nom$datefin_poste)
    df_poste$BDA <- as.POSIXct(df_poste$BDA, format="%Y-%m-%d %H:%M:%S" )
    Certains champs sont au format %Y-%m-%d et d'autre au format "%Y-%m-%d %H:%M:%S. Comme le changement de format se fait sur beaucoup de tables, Auriez-vous une piste pour automatiser le changement de classe?

    Merci par avance

  2. #2
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    bonjour,

    Comment importez vous les données? parfois c'est possible à l'import si vous connaissez le type de colonne de définir cela (je ne sais pas si cela est possible pour votre cas).

    Qu'est ce qui ne vous convient pas dans votre code? Vous voudriez détecter automatiquement si la colonne est de type date ou datetime & appliquer le format qu'il convient? Je pense que la solution la plus simple est juste de tester avec une regexp et si c'est le cas ou non de faire la transformation adéquate. L'utilisation du package dplyr pourrait vous simplifier la vie avec des fonctions comme mutate_if par exemple!

Discussions similaires

  1. script pour compter des lignes de codes
    Par zg2pro dans le forum Linux
    Réponses: 6
    Dernier message: 08/12/2007, 14h14
  2. [Source]Supprimer par code des lignes de codes ou un Module
    Par mortalino dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/01/2007, 16h37
  3. [XMLSpy] voir les N° des lignes de code
    Par t-die dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/11/2006, 13h28
  4. Numérotation des lignes de code
    Par charleshbo dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 14h11
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56

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