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

SAS Base Discussion :

Renommer plusieurs variables en même temps [DATA]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Renommer plusieurs variables en même temps
    Bonjour,

    J'ai 10 banques de données qui ont chacune les mêmes 500 variables. Chaque banque de données représente une année distincte. Je voudrais conserver 100 variables dans chaque banque et ajouter à la fin du nom de certaines de ces 100 variables _annee pour ensuite les fusionnées ensemble. J'ai évidement pas envie de faire un rename pour chaque variable...

    Merci d'avance!

    Claude

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 48
    Points : 63
    Points
    63
    Par défaut
    Bonjour Claude-Louis,

    Je pense que ça aurait été mieux si tu avais mis un exemple concernant la structure de tes données mais ce n'est pas trop grave.
    J'ai donc créé un petit jeu de données avec 2 tables ayant les mêmes structures et mêmes noms de variables. Ce qui change c'est le nom de la table et bien attendu le contenu.

    Bien évidement cela ne correspondra pas exactement à ce que tu veux mais il faut plutôt se concentrer sur la manière de récupérer les variables que tu vas renommer et leur renommage. Ensuite tu l'adapteras à ton besoin.

    Voilà ce que je te propose, mais n'hésites pas à revenir vers moi si cela ne réponds pas à ta question :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    data Donnees2014; 
    input nom $ prenom $ Age taille; 
    cards; 
    Thomas Toto 12 165
    Anne Tata 14 164
    ;
    run; 
     
     
    data Donnees2015; 
    input nom $ prenom $ age taille; 
    cards; 
    Phil Colins 25 182
    Tnoy Parker 30 184
    ; 
    run; 
     
    /* Récupère les noms de mes tables ainsi que leurs variables */
    data Tab_Liste_Var; 
    	set sashelp.vcolumn (where=(upcase(libname) = "WORK" and upcase(memname) like "DONNEES%")
    	keep = libname memname name); 
    	/* Création de varaible qui va nous servir pour le renommage */
    	VarRenomme = cats(memname, '_', name); 
    run; 
     
    %macro Renommage(Table = ); 
    	/* Déclaration de macro variable pour les anciens de noms de variables et nouvelles */
    	data _null_; 
    		set Tab_Liste_Var (where=(upcase(memname) = "&Table")) end= fin; 
    		call symput("Nieme_Oldname_"!!left(_n_), strip(name)); 
    		call symput("Nieme_NewName_"!!left(_n_), strip(Varrenomme));
    		if fin then call symput("NbVar", left(_n_)); 
    	run; 
     
    	data _&Table.; 
    		set &Table. ; 
    		rename 
    		%do i = 1 %to &NbVar. ; 
    			&&Nieme_OldName_&i. = &&Nieme_NewName_&i. 
    		%end; 
    		; 
    	run; 
    %mend; 
     
    %Renommage(Table = DONNEES2014); 
    %renommage(Table = DONNEES2015);
    Nom : Sans titre.png
Affichages : 1532
Taille : 18,3 Ko
    N'oubliez pas de cliquer sur résolu si votre problème est résolu .

  3. #3
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 624
    Points : 3 402
    Points
    3 402
    Par défaut
    Hello,
    Il y a plusieurs exemples dans le forum qui traitent ce genre de problématique, j'ai donné un exemple avec la CALL EXECUTE ici
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2016, 11h09
  2. Affectation de plusieurs variables en même temps
    Par qqcvd dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 08/04/2014, 15h01
  3. déclarer plusieurs variables en même temps
    Par piotrr dans le forum Général Python
    Réponses: 2
    Dernier message: 06/04/2007, 14h22
  4. lecture de plusieurs port en même temps
    Par manaboko dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 15h26
  5. Réponses: 9
    Dernier message: 17/04/2004, 16h32

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