Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/12/2012, 15h47   #1
RapH0304
Candidat au titre de Membre du Club
 
Homme
Inscription : novembre 2012
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Conseil

Informations forums :
Inscription : novembre 2012
Messages : 37
Points : 12
Points : 12
Par défaut Trier par nom de variables

Bonjour à tous,

ma table SAS contient 67 variables qui s'appellent respectivement S1 S2...S67
Mon problème est que j'ai absolument besoin qu celle-ci soit trié du plus petit au plus grand en fonction de leurs noms.
Pour le moment ma table SAS est :

S3 S54 S24 S14 ... et je voudrais que ce soit S1 S2 S3 ... , je cherche donc un moyen de les trier autre que l'instruction
Code :
1
2
 
RETAIN S1 S2 S3...
car j'ai beaucoup de variables et surtout que le nombre de variables n'est pas fixe.

Merci à tous

Bonne journée
RapH0304 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 19h53   #2
edward carnby
Membre éprouvé
 
Homme Ludovic Le Breton
Statisticien/développeur BI
Inscription : janvier 2012
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Le Breton
Âge : 38
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Statisticien/développeur BI
Secteur : Transports

Informations forums :
Inscription : janvier 2012
Messages : 177
Points : 464
Points : 464
Hello,

Il faut effectivement utiliser un retain (par exemple) pour réordonner tes variables dans ta table.

Pour automatiser ton traitement, tu peux créer une macro-variable listant tes variables correctement ordonnées :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
proc sql noprint;
SELECT input(substr(name,2),3.) AS temp, cat('S',calculated temp) INTO :temp, :liste separated BY ' ' FROM dictionary.COLUMNS
WHERE libname='MABIBLIOTHEQUE' AND memname='MATABLE' AND name LIKE "S%"
ORDER BY temp;
quit;
 
DATA MATABLE;
retain &liste;
SET MATABLE;
run;
edward carnby est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web