Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro 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 06/10/2011, 10h55   #1
Invité de passage
 
Homme
Consultant en Business Intelligence
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 2
Points : 2
Par défaut ACM : macro plotit - option qui permet de mettre une couleur pour chaque variable

Bonjour,

Je réalise une ACM via SAS, afin d'améliorer la représentation graphique de mes variables à partir de la maco Plotit, j'aimerais savoir si vous connaissez l'option qui nous permets de mettre une couleur pour chaque variable.

A part cette macro, auriez vous une macro SAS qui me permetrait de résoudre mon soucis?

Merci
the_special_one est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 11h54   #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 828
Points : 2 828
Bonjour.
Personnellement je n'utilise pas de macros, juste un peu de code. Si les indicatrices sont bien préparées en amont de la proc CORRESP, récupérer le nom des variables n'est pas très compliqué.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PROC FORMAT ;
  VALUE poids
   LOW - 110 = "< 50 kg"
   OTHER     = "> 50 kg"
  ;
  VALUE taille
   LOW - 63 = "< 1,60m"
   OTHER    = "> 1.60m"
  ;
RUN ;
PROC TRANSREG DATA=sashelp.class NOPRINT DESIGN ;
  MODEL CLASS(sex age weight height/ZERO=NONE SEP="=") ;
  FORMAT weight poids. height taille. ;
  ID name ;
  OUTPUT OUT=work.disjonctif (DROP=intercept _type_ _name_) ;
RUN ;
PROC CORRESP DATA=work.disjonctif DIMENS=%EVAL(&_trgIndN - 4)
			 OUTC=work.acm NOROW=PRINT NOCOLUMN=PRINT ;
  VAR &_trgind ;
  ID name ;
RUN ;
DATA work.VARIABLES ;
  SET work.acm (WHERE=(_type_="VAR")) ;
  var = SCAN(name,1,"=") ;
  val = SUBSTR(name,INDEX(name,"=")+1) ;
RUN ;
SYMBOL i=none v=dot h=1.5 pointlabel=("#val") ;
PROC GPLOT DATA=work.VARIABLES ;
  PLOT dim2 * dim1 = var / HREF=0 VREF=0 ;
RUN ; QUIT ;
GOPTION RESET=SYMBOL ;
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 12h36   #3
Invité de passage
 
Homme
Consultant en Business Intelligence
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 2
Points : 2
Citation:
Envoyé par olivier.decourt Voir le message
Bonjour.
Personnellement je n'utilise pas de macros, juste un peu de code. Si les indicatrices sont bien préparées en amont de la proc CORRESP, récupérer le nom des variables n'est pas très compliqué.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PROC FORMAT ;
  VALUE poids
   LOW - 110 = "< 50 kg"
   OTHER     = "> 50 kg"
  ;
  VALUE taille
   LOW - 63 = "< 1,60m"
   OTHER    = "> 1.60m"
  ;
RUN ;
PROC TRANSREG DATA=sashelp.class NOPRINT DESIGN ;
  MODEL CLASS(sex age weight height/ZERO=NONE SEP="=") ;
  FORMAT weight poids. height taille. ;
  ID name ;
  OUTPUT OUT=work.disjonctif (DROP=intercept _type_ _name_) ;
RUN ;
PROC CORRESP DATA=work.disjonctif DIMENS=%EVAL(&_trgIndN - 4)
			 OUTC=work.acm NOROW=PRINT NOCOLUMN=PRINT ;
  VAR &_trgind ;
  ID name ;
RUN ;
DATA work.VARIABLES ;
  SET work.acm (WHERE=(_type_="VAR")) ;
  var = SCAN(name,1,"=") ;
  val = SUBSTR(name,INDEX(name,"=")+1) ;
RUN ;
SYMBOL i=none v=dot h=1.5 pointlabel=("#val") ;
PROC GPLOT DATA=work.VARIABLES ;
  PLOT dim2 * dim1 = var / HREF=0 VREF=0 ;
RUN ; QUIT ;
GOPTION RESET=SYMBOL ;
Bon courage.
Olivier
Merci pour la rapidité de ta réponse, c'est ce que je voulais réaliser!
the_special_one 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 21h26.


 
 
 
 
Partenaires

Hébergement Web