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 :

nom de dataframe paramétré


Sujet :

R

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut nom de dataframe paramétré
    Bonjour,
    je souhaiterais renommer des variables d'une dataframe dont le nom est paramétré (par l'année).
    Sans paramètre, ça donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    library(dplyr)
    library(glue)
    New <- rename.vars(table2020, 
                             from =c('APE','CJ','SIREN'), 
                             to=c('APE_new','CJ_new','siren'))
    et cela fonctionne. Pour paramétrer, j'utilise le package glue (qui fonctionne dans d'autres contextes mais là, non !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    annee <- 2020
    New <- rename.vars(glue("table{annee})", 
                             from =c('APE','CJ','SIREN'), 
                             to=c('APE_new','CJ_new','siren'))

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    En remplaçant "glue" par "eval(parse(text=sprintf("table%4d",annee)))", ça fonctionne, mais c'est un peu lourd !!

  3. #3
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut package glue
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > table2020 <- data.frame(APE = c(1,1,1),
    +                         CJ = c(1,1,1),
    +                         SIREN = c(1,1,1))
    >
    • Plus lisible que sprintf("table%4d",annee) je propose paste0("table",annee) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > annee <- 2020
    > gdata::rename.vars(eval(parse(text=paste0("table",annee))), 
    +                    from =c('APE','CJ','SIREN'), 
    +                    to=c('APE_new','CJ_new','siren'))
     
    Changing in eval(parse(text = paste0("table", annee)))                          
    From: APE     CJ     SIREN
    To:   APE_new CJ_new siren
     
      APE_new CJ_new siren
    1       1      1     1
    2       1      1     1
    3       1      1     1
    • Pour déboguer votre code avec le package glue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > annee <- 2020
    > glue::glue("table{annee}")
    table2020
    > get(glue::glue("table{annee}"))
      APE CJ SIREN
    1   1  1     1
    2   1  1     1
    3   1  1     1
    ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > annee <- 2020
    > gdata::rename.vars(get(glue::glue("table{annee}")), 
    +                    from =c('APE','CJ','SIREN'), 
    +                    to=c('APE_new','CJ_new','siren'))
     
    Changing in get(glue::glue("table{annee}"))                          
    From: APE     CJ     SIREN
    To:   APE_new CJ_new siren
     
      APE_new CJ_new siren
    1       1      1     1
    2       1      1     1
    3       1      1     1
    Cordialement,

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Merci

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

Discussions similaires

  1. nom de dataframe paramétré
    Par jlp65 dans le forum R
    Réponses: 2
    Dernier message: 03/12/2019, 05h22
  2. Nom automatique des paramètres
    Par Atatorus dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 02/10/2008, 16h13
  3. [C#.Net] Obtenir le nom d'un paramètre
    Par Ticoche dans le forum Windows Forms
    Réponses: 7
    Dernier message: 25/03/2008, 16h39
  4. Access2000-noms de function paramétrés ?
    Par AndréPe dans le forum IHM
    Réponses: 2
    Dernier message: 17/07/2007, 10h10
  5. Access2000 Noms de champs paramétrés
    Par AndréPe dans le forum Access
    Réponses: 1
    Dernier message: 20/01/2007, 16h52

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