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 :

Copie ensemble de colonnes


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 Copie ensemble de colonnes
    Bonjour,
    Je souhaiterais copier des colonnes, identifiées par des noms de variable suffixés par "_prov" dans des variables dont les noms sont identiques au suffixe près ("_def")

    Ainsi, ma table initiale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > res
      x v1_prov V2 azer_prov 
    1 1       4  7        10       
    2 2       5  8        20       
    3 3       6  9        30
    devra être transformée en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    > res
      x v1_prov V2 azer_prov azer_def v1_def
    1 1       4  7        10       10      4
    2 2       5  8        20       20      5
    3 3       6  9        30       30      6
    Si quelqu'un a une solution élégante ...

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Je ne sais pas si la solution paraîtra "élégante" mais voilà toujours. C'est du R base, le package {tibble} ne servant qu'à saisir l'exemple.
    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
    17
    18
    19
    20
    21
    22
    # saisie des données exemple ----
    library(tibble)
    res <- tribble( ~x, ~v1_prov, ~V2, ~azer_prov ,
                    1,       4,  7,        10,       
                    2,       5,  8,        20,       
                    3,       6,  9,        30)
     
    # dupliquer les colonnes "_prov" dans des colonnes "_def" ----
     
    # on récupère tous les noms de colonnes
    a_copier <- colnames(res)
    # on garde ceux qui se finissent par "_prov"
    a_copier <- a_copier[grepl("_prov$",a_copier)]
     
    # on construit les nouveaux noms
    nouveaux_noms <- gsub("_prov$","_def",a_copier)
     
    # on duplique les données
    res2 <- res
     
    # on ajoute les nouvelles colonnes
    res2[,nouveaux_noms] <- res[,a_copier]
    Bon courage.
    Olivier

  3. #3
    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 !
    De mon côté, après quelques recherches, j'ai "fabriqué" cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    new <- res %>% select(matches("_prov$")) %>% 
      rename_with(~gsub("prov","def",.x,fixed=T)) %>% 
      bind_cols(res)
    (où je ne comprends pas très bien l'utilité des arguments x et fixed de la fonction gsub, mais ils sont apparemment nécessaires !
    En tout cas, merci pour la solution proposée qui me convient également parfaitement. De plus, elle m'a permis de découvrir l'usage de tibble, la fonction grepl...

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

Discussions similaires

  1. creation d'un ensemble de colonnes
    Par bigplayer dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/05/2007, 15h33
  2. [VBA-E]Copie/colle selon colonnes
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/04/2007, 09h13
  3. Réponses: 2
    Dernier message: 13/02/2007, 14h00
  4. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06
  5. [D-7][PostGres]Récuperer l'ensemble des colonnes d'une table
    Par Escandil dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/10/2005, 09h17

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