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 :

Utilisation de la fonction MAX


Sujet :

SAS Base

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études / Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut Utilisation de la fonction MAX
    Bonjour, j'essai d'utiliser la fonction ROUND en y paramétrant l'arrondi en fonction du maximum d'une autre colonne (je sais c'est étrange mais le pourquoi du comment n'est pas forcément nécessaire à la résolution de mon problème).

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dotplot = ROUND(V1, max(colonne));
    Mais voilà, je n'arrive pas à récupérer le maximum, il me renvoi qu'il n'a pas assez d'argument (si je comprends bien, utilisée comme ça, la fonction max voudrait prendre en entrée un vecteur de valeurs et non une colonne).

    L'idée pour moi est d'automatiser cette opération en pouvant l'appliquer sur une table complète sans avoir à fixer l'ordre d'arrondi à chaque fois.

    Quelqu'un peut m'aider?

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Max va chercher le maximum entre deux ou plusieurs colonnes. MAx(v1,v2)...
    avec une seule variable il n'ira pas chercher le max DANS la colonne.

    pour suivre cette même logique il te faut récupérer le max avant et créer une colonne dédiée avec .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    proc sql;
    create table test as select * , max(colonne) as mx
    from matable ;
    quit;
     
    data test;
    set test;
    dotplot = ROUND(V1, mx);
    run;
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    proc sql;
    create table test as select * , max(colonne) as mx, ROUND(V1, CALCULATED mx) as dotplot
    from matable ;
    quit;

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études / Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut
    Merci Datametric, j'ai vraiment du mal avec la logique de SAS quand même... en fait si je comprends bien quand tu écris en langage SAS c'est une logique en colonne, et si on veut pouvoir faire comme dans d'autre langage en définissant des valeurs qu'on s'utilise quand on veut, faut passer par une logique de liste avec du SQL quoi...

  4. #4
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    pour les fonctions oui.

  5. #5
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Citation Envoyé par joyeux_lapin13 Voir le message
    Merci Datametric, j'ai vraiment du mal avec la logique de SAS quand même... en fait si je comprends bien quand tu écris en langage SAS c'est une logique en colonne, et si on veut pouvoir faire comme dans d'autre langage en définissant des valeurs qu'on s'utilise quand on veut, faut passer par une logique de liste avec du SQL quoi...
    Bonjour,

    SAS traite ligne à ligne la table, c'est à dire si tu appliques une fonction SAS, celle ci ne s'appliquera que sur la ligne qui est dans le PDV (le PDV c'est un vecteur qui contient à chaque itération l'ensemble des données d'une ligne de la table).

    En SQL tu peux faire le traitement en colonne.
    J'espère que c'est assez clair.

    Cordialement

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

Discussions similaires

  1. [Toutes versions] Utilisation de la fonction max
    Par thoruiz dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/08/2019, 09h19
  2. Ouverture d'un fichier et utilisation de la fonction max
    Par gta9956 dans le forum Général Python
    Réponses: 5
    Dernier message: 03/06/2014, 21h09
  3. Utilisation de la fonction MAX()
    Par JustyDark dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/01/2014, 22h36
  4. Utilisation de la fonction MAX
    Par PatStan17 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/04/2012, 17h49
  5. Utilisation de la fonction max
    Par k-koo dans le forum Langage SQL
    Réponses: 12
    Dernier message: 30/11/2007, 15h55

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