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 23/02/2011, 16h03   #1
Membre habitué
 
Homme
Consultant informatique
Inscription : mars 2002
Messages : 211
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2002
Messages : 211
Points : 133
Points : 133
Par défaut [GRAPHIQUE] bar chart : concaténer deux valeurs sur une seule barre verticale

Bonjour,

Je débute avec les graphs SAS.

J'ai créé une table_ref qui me donne la somme des valeurs missing et non missing d'une table source.
Ma table contient donc 1 observation avec 2 variables:
Code :
1
2
nb_missing | nb_nomissing
6000         |  7000
J'aurais voulu créer un bar chart avec une seule ligne verticale qui serait la concaténation de mes 2 valeurs(nb_missing et nb_nomissing).La hauteur de la ligne verticale serait donc de 13000.
Cette ligne verticale aurait deux couleurs: couleur1 de 0 à 6000 et couleur2 de 6000 à 13000.

J'ai vu qu'il y avait une option subgroup mais cela ne fonctionnerait pas avec ma table_ref.

Y a -t-il une possibilté de mettre les 2 valeurs contenues dans cette table dans 1 seule barre verticale?

Voici ce que j'ai fait (seulement avec 1 valeur)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* pour avoir l'équivalent de ma table ref */
/* qui est un résulta du de la somme des nb d'observation missing et non missing*/
data test;	
 input nb_missing 8. nb_nomissing 8. ;
datalines;
6000 7000
run;

/*Ceci me donne une barre verticale avec la somme de valeurs non missing*/
/* je voudrais donc avoir sur la même barre la somme des missing */
proc gchart data=test;
	vbar3d nb_nomissing / sumvar=nb_nomissing ;
run;
quit;
Merci pour votre aide.
L0007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 16h25   #2
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
Bonjour.
Comme souvent dans SAS/GRAPH, ce que la doc n'explique pas (ou mal), c'est la forme des données pour que ça fonctionne bien.
Pour SUBGROUP, il cumule dans une même barre des valeurs qui se trouvent à des observations différentes. Donc la forme actuelle de tes données ne peut pas fournir le résultat espéré.
Il faudrait (avec une proc Transpose par exemple) pivoter tes données pour avoir :
Code :
1
2
3
4
CATEGORIE       NB    QUOI
---------------------------
Missing        6000   Nombre
Non-missing    7000   Nombre
Et tu fais VBAR quoi / SUBGROUP=categorie SUMVAR=nb TYPE=SUM ;

(La variable QUOI ne sert à rien mais on est obligé d'avoir une variable constante si on veut un graphique avec une seule barre.)

Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 09h23   #3
Membre habitué
 
Homme
Consultant informatique
Inscription : mars 2002
Messages : 211
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2002
Messages : 211
Points : 133
Points : 133
Super!

Ca fonctionne.
J'ai donc juste transformé la disposition de mes données à la création de la table pour le graphe.

Merci beaucoup et bonne journée!
L0007 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 13h18.


 
 
 
 
Partenaires

Hébergement Web