Comment faire pour renommer l’ensemble des variables d’une table SAS, surtout quand il y en a plus d’une centaine ?
Si vos variables ont des noms organisés en séquences, vous pouvez les renommer d’un seul coup avec cette écriture :
DATA maTable ; SET maTable (RENAME = (v3-v15 = x20-x32)) ; RUN ;
Les variables s’appellent à l’origine v3, v4, v5, …, v15 et après renommage, x20, x21, …, x32.
Sinon, vous pouvez construire une table SAS avec les anciens et les nouveaux noms (éventuellement à partir d’une feuille Excel importée). L’exemple ci-dessous vous montre comment on peut ensuite générer automatiquement la litanie de RENAME.
DATA work.nouveaux_noms ;
INPUT ancien $ nouveau $ ;
DATALINES ;
name nom
sex sexe
weight poids
height taille
;
RUN ;
%LET table = sashelp.class ;
/* NE PLUS RIEN MODIFIER APRES CETTE LIGNE */
DATA _NULL_ ;
SET work.nouveaux_noms END = fin ;
IF _N_=1 THEN DO ;
CALL EXECUTE ("DATA work.nouvelle_table ;") ;
CALL EXECUTE ("SET &table (RENAME=(") ;
END ;
CALL EXECUTE (ancien!!"="!!nouveau) ;
IF fin THEN DO ;
CALL EXECUTE (")) ;") ;
CALL EXECUTE ("RUN ;") ;
END ;
RUN ;