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 16/01/2008, 18h24   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 39
Points : 14
Points : 14
Par défaut [Stat] Centrer les données dans une proc print

Bonjour à tous,
comme l'indique mon sujet, je souhaiterai pouvoir centrer les données qui se trouvent dans le tableau produit par la proc print de la macro suivante.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
%macro modeledesc;
 
%do i=1 %TO &nblmoddesc;
	%put &&marqmoddesc&i;
	%let descmodele = &&marqmoddesc&i;
ods listing close;
ods html body = "&chemin.ods\desc\&descmodele..htm";
	title "Description de la &descmodele";
	proc print DATA = projet.description label noobs;
	var marque modele type carrosserie Deb_construction1;
	WHERE modele1 = "&descmodele";
	*format marque $lienmarque. ;
run;
%end;
%mend;
Merci de m'avoir lu
aureliegro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 22h05   #2
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Bonsoir,

Et quelle est ta question si toutefois il y en a une ?
Ta macro ne fonctionne pas ? Tu as un message d'erreur ?

Quel est ton problème ?

Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 09h30   #3
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Bonjour,

Si j'ai bien compris il s'agit de centrer toute les valeurs d'un tableau dans une sortie en HTML.

Il y a surement plusieurs solutions à ton problème mais je pense qu'une des solutions est de jouer avec les styles

Dans un ODS HTML, SAS utilise le style par défaut à savoir les valeurs numériques sont alignés à droite et les valeurs caractères alignés à gauche ... un peu comme dans Excel.

Il faut créer un nouveau style avec une PROC TEMPLATE et spécifié la justification. ex:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
proc template;
 
   parent=styles.DEFAULT;
 
   REPLACE COLUMN / just = l ;
   end;
 
run;
 
J'ai pas testé, je regarde ça dans la journée si j'ai du temps ;)
 
@+
 
Steel
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 11h38   #4
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Arf non c'est beaucoup plus simple que ça.

Voici la solution :

Ajouter STYLE(DATA) = [JUST = CENTER] dans la proc print.

Ex:

Code :
1
2
3
4
5
6
7
8
9
10
 
 
ods listing close;
ods html body="C:\test.html" ;
 
	proc print DATA=sashelp.class STYLE(DATA)=[JUST=CENTER];
	run;
 
ods html close;
ods listing;
ce qui nous donne, dans ton code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%macro modeledesc;

%do i=1 %to &nblmoddesc;
	%put &&marqmoddesc&i;
	%let descmodele = &&marqmoddesc&i;
ods listing close;
ods html body = "&chemin.ods\desc\&descmodele..htm";
	title "Description de la &descmodele";
	proc print data = projet.description label noobs STYLE(DATA) = [JUST = CENTER];
	var marque modele type carrosserie Deb_construction1;
	where modele1 = "&descmodele";
	*format marque $lienmarque. ;
run;
%end;
%mend;
Steel
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 11h49   #5
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Salut,
Par centrer les données : parles-tu de la présentation ou d'un centrage des données pour faire une ACP (technique stat : à chaque donnée on retire sa moyenne)??
a+
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 13h47   #6
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 39
Points : 14
Points : 14
Merci à tous pour vos réponse.

En faite, en ajoutant STYLE(DATA) = [JUST = CENTER] dans la proc print, j'obtiens ce que je voulais.

Merci
aureliegro 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 12h26.


 
 
 
 
Partenaires

Hébergement Web