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 :

l'intérêt des deux point dans un programme sas


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 17
    Points
    17
    Par défaut l'intérêt des deux point dans un programme sas
    Bonjour,
    je viens de regarder un code sas dans lequel se trouve l'utilisation des deux points ( après un signe d'égalité ou d'inégalité. Je vous donne une exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data table; if ad=:"riche" or ad=:"pauvre" then valeur="pareil";
    "pauvre"<=:ad<=:"riche" then valeur=pareil; run;
    Quelqu'un connait-il l'intérêt de ces deux points ?
    Je vous remercie d'avance!

  2. #2
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Voilà une définition que j'ai trouvé dans un vieux guide SAS :
    "When making character comparisons, you can use a colon ( : ) after any of the comparison operators to compare only the first character(s) of the value. The SAS System trucates the longer value to the length of the shorter value during the comparison".

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    data test ;
        input ad $10. ;
        cards ;
    riche
    riches
    rixxx
        ;
    run ;
    data test ;
        set test ;
        if ad =: "riche" then valeur = "pareil" ;
        put ad =  @15 valeur = ;
    run ;
    --> C'est bon pour riche et riches, pas pour rixxx

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Merci pour la bonne réponse, Remy !

  4. #4
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Je t'en prie,

    En fait je me rend compte que c'est une notation très puissante.
    Par exemple, je fais souvent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if substr(code,1,1) = "R"
    là où il me suffirait en fait de faire
    ce qui serait plus lisible, est sûrement plus rapide également !

    Rémi

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    il y a aussi cette notation qui existe : cela fait autre chose mais bon c'est pour illustrer tous les types de notation qui peuvent exister;

    Perso je n'aime pas le "=:" illustration de ce qui me dérange:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data _NULL_;
       x = 'Ru';
       z = 'R';
     
       test1 = (x=: 'Ru');
       test2 = (z=: 'Ru');
     
       put test1 test2;
    run;
    test1 & test2 sont vrais ce qui est loin d'être evident pour le programmeur au départ...

    xav

  6. #6
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Suis OK pour dire que le code doit être utilisé avec parcimonie, car étant peu commun, il va perturber la lecture.

    Mais sais tu ce que fait le code que tu proposes ?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    il est l'equivalent de la fonction soundex qui vérifie suivant un algo si les deux chaines se ressemblent au niveau phonétique

    evidement l'algo est pour une langue anglaise voir une prononciation américaine

    xav

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

Discussions similaires

  1. Relier deux points dans l'espace par des segments perpendiculaires
    Par Poupi0 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 27/04/2010, 15h06
  2. l'intérêt des langages compilés dans la programmation web
    Par mon_nom_est_personne dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 27/08/2009, 08h13
  3. [Question] Deux-points dans une URL
    Par Karashi dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 27/05/2007, 22h42
  4. Utiliser des labels multilignes dans un programme!
    Par bruce-willis dans le forum C++Builder
    Réponses: 17
    Dernier message: 16/04/2007, 12h53
  5. utilisation des commandes shell dans un programme C
    Par rasgueados dans le forum Linux
    Réponses: 15
    Dernier message: 03/08/2006, 17h25

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