IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS STAT Discussion :

Manipulation d'une base de données


Sujet :

SAS STAT

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 18
    Points
    18
    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.

  2. #2
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Manipulation d'une base de données
    Par daniel1985 dans le forum Général Java
    Réponses: 8
    Dernier message: 09/10/2012, 11h45
  2. [WD12] Manipulation d'une base de données CS
    Par karim15 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/07/2012, 12h14
  3. Réponses: 5
    Dernier message: 03/06/2009, 08h50
  4. Réponses: 14
    Dernier message: 20/09/2006, 21h07
  5. Peut-on manipuler une base de donnée oracle sans oracle
    Par sillycoder dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 09h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo