Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
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 09/06/2008, 14h22   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 78
Points : 13
Points : 13
Par défaut définition de classes équivalentes

Bonjour

existe-t-il une proc sas qui permet de créér "automatiquement" une variable "classe" à partir d'une variable numérique avec comme condition que cette procédure définisse des classes équivalentes (même pas).

Par ex : ma variable de départ prend des valeurs entre -300 et 500=> je veux définir 100 classes donc j'obtiens 100 classes de "pas" 80.

Merci
ALLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h16   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
Peux-tu rédéfinir la notion de classe équivalente .... je ne la comprend pas très bien. Veux-tu dire classes de même taille (amplitude, largeur)?
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h26   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 78
Points : 13
Points : 13
bonjour,

classes équivalentes = classes de même amplitudes.

Dans mon exemple, j'aurai 100 classes :
- la première classe contiendra toutes les lignes pour lesquelles la variable < (ou <=) 80,
-la deuxième classe contiendra toutes les lignes pour lesquelles la variable est comprise entre 80 et 80+80=160,
- la troisième toutes les lignes pour lesquelles la variable est comprise entre 160 et 80+80+80=240
etc...
ALLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h34   #4
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
Je ne connais pas personnellement ce genre de procédure.
Cependant pourquoi n'utilises-tu pas une étape DATA avec des if pour solutionner ce problème?
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h36   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 78
Points : 13
Points : 13
c'est ce que je suis en train d'essayer de faire ...mais s'il y avait eu une procédure qui le faisait automatiquement, ca aurait été plus simple ;-)
ALLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h59   #6
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
Si tu automatises ton code à l'aide du macro langage tu pourra alors créer toi même une fonction (mais pas une procédure) permettant la manipulation et ainsi la diffuser sur ce site!!
Fafabzh
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 11h52   #7
Membre confirmé
 
Inscription : avril 2008
Messages : 233
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2008
Messages : 233
Points : 216
Points : 216
Tu calcules la taille de tes classes, ensuite tu l'applique aux valeurs observées :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
proc sql;
	SELECT
		min(VARIABLE),
		(max(VARIABLE) - min(VARIABLE)) / 100
	INTO :min_value, :class_width
	FROM SOURCE
;
quit;
 
DATA RESULTAT;
	SET SOURCE;
	CLASSE = floor((VARIABLE - &min_value.) / &class_width.);
run;
green_fr 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 02h23.


 
 
 
 
Partenaires

Hébergement Web