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 Base Discussion :

Fonction MAX sous data


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut Fonction MAX sous data
    on a 2 variable x et T tel que
    x T
    1 5
    2 5
    3 5
    4 5
    5 5

    comment faire comprendre à SAS que la variable T prend une seule valeur qui est le max de la variable x.

  2. #2
    Membre Expert
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Par défaut
    Bonjour Leosaka,

    c'est ce que tu fais! T prends bien une seule valeur, le max de la valeur de X. Maintenant si tu veux T renvoie X seulement pour la valeur max de X (et rien sinon), essaye:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc sql;
    	create table test as 
    	select WEIGHT,
    		case when max(WEIGHT)=WEIGHT then WEIGHT else . end as MAXWGT
    	from SASHELP.BWEIGHT(keep=WEIGHT)
    	;
    quit;


    Dans le doute d'avoir bien compris ce que tu veux, si tu veux arriver à la situation que tu présentes au dessus, utilises:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc sql;
    	create table test as 
    	select WEIGHT,
    		max(WEIGHT) as MAXWGT
    	from SASHELP.BWEIGHT(keep=WEIGHT)
    	;
    quit;
    Bien à toi,

    Manoutz

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut
    merci pour cette programme, je vais l'essayer , mais est-il possible de l'écrire avec des étapes data ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Par défaut
    Bonjour,
    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
    21
    data test ;
    /* Création jeu d'essai */
       input x ;
       cards ;
    3 
    5 
    1 
    ;
    run ;
    /* Tri décroissant du jeu d'essai */
    proc sort data=test ; by descending x ; run ;
    data resultat ;
       set test ;
    /* retain pour empêcher la mise à manquant */
       retain T ;
    /* _n_ : variable interne SAS contenant le n° d'observation courante */
       if _n_ = 1 then 
    /* Sélection de la valeur maximum de x dans une nouvelle variable T */
          T=x
       ;
    run ;
    Bon courage !
    Bruno

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Par défaut
    Bonjour, je reprends le post de Leosaka en y rajoutant une variante:

    on a 3 variables x, y et T tel que
    x y T Q
    1 Paris 5 Lille
    2 Lyon 5 Lille
    3 Caen 5 Lille
    4 Tours 5 Lille
    5 Lille 5 Lille

    comment faire comprendre à SAS que la variable T prend une seule valeur qui est le max de la variable x -> c'est ok grâce à vos multiples réponses.

    Mais en plus, je veux créer une variable Q qui va contenir la valeur de y correspondant au MAX de x. Comment procéder? Merci d'avance.

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

Discussions similaires

  1. Éviter sous-requête avec la fonction max
    Par Elendil0 dans le forum SQL
    Réponses: 3
    Dernier message: 29/06/2012, 14h38
  2. Fonction MAX dans une data ou proc SQL
    Par Ouvrier11023 dans le forum SAS Base
    Réponses: 2
    Dernier message: 11/06/2012, 10h10
  3. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 10h38
  4. fonction "inb" sous linux; port parallele
    Par be_net dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/06/2004, 11h39
  5. Fonction EXTRACT sous Informix
    Par lord_of_ankou dans le forum Informix
    Réponses: 3
    Dernier message: 20/08/2003, 17h37

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