Bonjour,
Ma question est la suivante : comment compter le nombre de modalités prises par une variable alphanumérique dans une table SAS ?
Bonjour,
Ma question est la suivante : comment compter le nombre de modalités prises par une variable alphanumérique dans une table SAS ?
Bonjour,
Voici une solution en SQL :
Ce pgm compte le nombre de valeurs distinctes de la variable MA_VARIABLE et stocke ce nombre dans une macro variable appelée NBVAL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 proc sql ; select count(distinct MA_VARIABLE) into :NBVAL from MA_TABLE ; quit ;
Bon courage
Dernière modification par fafabzh6 ; 22/12/2008 à 18h49. Motif: Manque balise [code] [/code]
Ok merci,
et sinon est-ce possible de stocker ces différentes modalités dans une variable pour ensuite les afficher ?
Dans une variable ou dans une table ?
Dans le premier cas c'est :
dans le deuxième :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... select distinct MA_VARIABLE_SAS into :MA_VARIABLE_MACRO separated by ', ' ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... create table MES_VARIABLES as select distinct MA_VARIABLE_SAS ...
Bonjour,
est il possible de faire la même chose avec toutes les variables d'une table SAS (de façon dynamique évidemment) ??
Merci beaucoup
Adrien
Bonjour,
Je te propose cette solution:
Compter les valeurs distinctes :
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 %macro names(table=); %let dsid=%sysfunc(open(&table,i)); %do i=1 %to %sysfunc(attrn(&dsid,nvars)); %let varlist=%sysfunc(varname(&dsid,&i)); %global mac_&varlist; proc sql noprint; select count(distinct &varlist) into : mac_&varlist from &table ; quit ; %end; %let rc=close(&dsid); %mend names; %names(table=sashelp.class);
2/ Pour extraire les occurrences de chaque variable:
Cordialement
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 %macro names(table=); %let dsid=%sysfunc(open(&table,i)); %do i=1 %to %sysfunc(attrn(&dsid,nvars)); %let varlist=%sysfunc(varname(&dsid,&i)); %global mac_&varlist; proc sql noprint; select distinct &varlist into :mac_&varlist separated by ' , ' from &table ; quit ; %end; %let rc=close(&dsid); %mend names; %names(table=sashelp.class);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager