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 :

renommage colonnes dans une table


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 renommage colonnes dans une table
    Bonjour,
    J'ai une table (data.table "source") de 185000 observations
    Elle comporte, entre autres, les colonnes code_postal_salarie et complement_no_adresse_salarie (cette dernière étant souvent non renseignée)
    Je souhaiterais utiliser une fonction de renommage de colonnes qui prenne en argument les colonnes à renommer (vecteur "OLD") et les nouveaux noms à attribuer aux colonnes (vecteur "NEW").
    J'ai donc écrit cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    renommer_colonnes <- function(table,old,new){
      colnames(table)[colnames(table) %in% old] <- new
      return(table)
    }
    qui fonctionne correctement, en l'appliquant à la table initiale dont je ne conserve que quelques colonnes (code_postal_salarie,rue_adresse_salarie,id_integral,complement_no_adresse_salarie,code_voie_salarie):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    old <- c("code_postal_salarie", "complement_no_adresse_salarie") 
    new <- c("code_postal", "compladr")
     
    s <- source[,.(code_postal_salarie,rue_adresse_salarie,id_integral,complement_no_adresse_salarie,code_voie_salarie)]
    s2 <- renommer_colonnes(s, old, new)
     
    head(s2,3)
    ... mais plus du tout en prenant la table initiale avec toutes ses colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s2 <- renommer_colonnes(source, old, new)
    Dans ce dernier cas, il y a une interversion du renommage : tout semble se passer comme si code_postal_salarie était renommé en compladr, et complement_no_adresse_salarie en code_postal

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 834
    Points
    834
    Par défaut
    bonjour en utilisant la fonction rename ça ne serait pas plus simple et explicite?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s2<- dplyr::rename(s,code_postal = code_postal_salarie, compladr= complement_no_adresse_salarie)

  3. #3
    Membre régulier
    Homme Profil pro
    Developpeur
    Inscrit en
    Décembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 111
    Points : 79
    Points
    79
    Par défaut renommage colonnes dans une table
    Hello je penses que rename pourra mieux faire et rendre ton code plus lisible
    install.packages('tidyverse')
    library(tidyverse)

    df<-data.frame(
    "code_postal_salarie"=c('2435','8984'),
    "complement_no_adresse_salarie"=c("12, paris av. Londrien","56, saint Denis")
    )

    df<-df %>% rename("code_postal"="code_postal_salarie","compladr"="complement_no_adresse_salarie")

Discussions similaires

  1. Déplacer une colonne dans une table...
    Par ralkif dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 07/10/2009, 06h50
  2. Réponses: 4
    Dernier message: 26/03/2008, 09h43
  3. Vérifier l'existance d'une colonne dans une table MySQL
    Par )3lade dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/04/2006, 11h46
  4. Réponses: 1
    Dernier message: 22/12/2005, 09h03
  5. Ajout d'une colonne dans une table ...
    Par Djedjeridoo dans le forum SQL
    Réponses: 2
    Dernier message: 22/07/2003, 16h12

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