Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS STAT
SAS STAT Forum d'entraide sur les fonctionnalités liées à la statistique sur SAS : statistique descriptive, test, régression, classification
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 27/12/2010, 10h18   #1
Invité de passage
 
essid hédi
Inscription : décembre 2009
Messages : 17
Détails du profil
Informations personnelles :
Nom : essid hédi

Informations forums :
Inscription : décembre 2009
Messages : 17
Points : 2
Points : 2
Par défaut Manipulation d'une base de données

Salut,
Je programme sous SAS. Je dispose d’une base de données (sous forme de matrice). Je cherche les lignes unitaires (toute les composantes sont égale à 1) : Si la ligne est unitaire alors var=oui.
Donc le trie se fait par ligne et non par variable, c’est-à-dire colonne. Peut-on faire ça sans passer par proc IML?
Merci d’avance.
zoom2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 10h42   #2
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,

Oui c'est possible en mettant les variables dans un ARRAY puis en détectant les valeurs non égal à 1.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
DATA test;
	input var1 var2 var3;
	cards;
	1 1 1
	1 1 0
	1 0 1
	1 1 1
	;
run;
 
DATA test2;
	SET test;
	LENGTH FLAG $3;
	ARRAY matrice{*} var1-var3;
	do i=1 TO dim(matrice);
		IF matrice(i) ne 1 then flag="NON";
	end;
	IF flag eq "" then flag="OUI";
run;
Bon courage,
Steel
__________________
Avant de poser votre question, n'oubliez pas :
FAQ, SAS DOC et de ce forum
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 11h47   #3
Invité de passage
 
essid hédi
Inscription : décembre 2009
Messages : 17
Détails du profil
Informations personnelles :
Nom : essid hédi

Informations forums :
Inscription : décembre 2009
Messages : 17
Points : 2
Points : 2
Citation:
Envoyé par steelspirit Voir le message
Bonjour,

Oui c'est possible en mettant les variables dans un ARRAY puis en détectant les valeurs non égal à 1.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
DATA test;
	input var1 var2 var3;
	cards;
	1 1 1
	1 1 0
	1 0 1
	1 1 1
	;
run;
 
DATA test2;
	SET test;
	LENGTH FLAG $3;
	ARRAY matrice{*} var1-var3;
	do i=1 TO dim(matrice);
		IF matrice(i) ne 1 then flag="NON";
	end;
	IF flag eq "" then flag="OUI";
run;
Bon courage,
Steel
zoom2009 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 09h52.


 
 
 
 
Partenaires

Hébergement Web