Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/08/2011, 04h49   #1
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juillet 2011
Messages : 12
Points : 0
Points : 0
Par défaut Calcul dans le out put du proc freq

Bonsoir,
ma question est la suivante : je fais un proc freq pour une variable binaire comme suit :
Code :
1
2
3
proc freq DATA=TABLE;
TABLES Mavariable/ noprint out= count_me;
run;
ensuite je voudrais calculer la fraction : nombre des 1/nombre des 0 ce qui me donnera le pourcentage qui me servira ensuite pour faire mon sous échantillonnage...mais je ne sais pas comment faire ça, SVP aidez moi
Merci d'avance
loubna181 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 14h57   #2
Futur Membre du Club
 
Femme
Étudiant
Inscription : juin 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 19
Points : 17
Points : 17
Peut être une idée pour obtenir un résultat. Je stocke le nombre total de 0 dans une variable à l'aide d'un RETAIN puis calcul de la fraction.

Code :
1
2
3
4
5
6
DATA count_me;
SET count_me;
retain nb_0;
IF Mavariable = 0 then nb_0 = COUNT;
fraction= COUNT/nb_0;
run;
En espérant avoir un peu aidé.
Mag35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 15h38   #3
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
si tu faisais un COUNT de chaque modalité ?

Code :
1
2
3
4
5
6
7
proc SQL;
CREATE TABLE res AS 
SELECT 
SUM ( Case when Mavariable=1 then 1 else 0 end ) / SUM ( Case when Mavariable=0 then 1 else 0 end ) AS RATIO
FROM matable
;
quit;
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 17h37   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Tu aimes te compliquer l'existence Stéphane...
Code :
1
2
3
4
5
6
7
proc SQL;
CREATE TABLE res AS 
SELECT 
SUM (Mavariable) / SUM ( Mavariable=0 ) AS RATIO
FROM matable
;
quit;
Si la variable vaut 1 ou 0, sa somme est le nombre de fois où ça vaut 1. Et pour générer 1 quand la condition est vraie, il suffit d'écrire la condition, pas de CASE.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 17h42   #5
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
je ne me savais plus où j'avais lu que l'on pouvais éviter le CASE et la forme à adopter mais je me souviens dans quel bouquin maintenant
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 20h54   #6
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Pour rebondir sur l'idée de Mag35 ça le fait aussi mais sans passer par la freq

Code :
1
2
3
4
5
6
DATA count_me; SET TABLE end=eof;
retain b 0 ;
b+(Mavariable=0);
IF eof then do;ratio=(_n_-b)/b;output;end;
keep ratio;
run;
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h32.


 
 
 
 
Partenaires

Hébergement Web