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

Débutez Discussion :

Stocker valeur (nombre d'observations)


Sujet :

Débutez

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Points : 22
    Points
    22
    Par défaut Stocker valeur (nombre d'observations)
    Bonsoir,

    J'ai une question toute simple mais que je n'arrive pas à résoudre.
    Dans une proc contents, on a de nombreuses informations dont le nombre d'observations d'une table.

    J'aurais besoin de stocker ce nombre dans une macro "%let nb_obs = ..."


    De quelle façon pourrais - je m'y prendre ?


    Cordialement,
    Mac.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Points : 22
    Points
    22
    Par défaut
    Est - ce si difficile ? :-/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant SAS
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant SAS
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 20
    Points
    20
    Par défaut
    Bonjour Mac_leod,

    Non cela n'est pas très difficile, et on peut trouver la réponse facilement sur internet, et même sur ce forum. Il y a plusieurs méthodes pour stocker le nombre d'observations d'une table. En voici une simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DATA _NULL_;
    IF 0 THEN SET sashelp.class NOBS=nb_obs;
    CALL SYMPUTX('nb_obs',nb_obs);
    STOP;
    RUN;
     
    %PUT &nb_obs;
    Et s'il faut absolument passer par la proc contents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PROC CONTENTS DATA = sashelp.class OUT = temp NOPRINT;
    RUN;
     
    DATA _NULL_;
    SET temp;
    CALL SYMPUTX('nb_obs2',nobs);
    RUN;
     
    %PUT &nb_obs2;
    cordialement,

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Salut.
    Je comprends la solution de renoriwal, mais je ne sais pas ce à quoi sert le "if 0" et le "stop". J'aimerais savoir son importance dans le programme.
    Merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant SAS
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant SAS
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par marius_adom Voir le message
    je ne sais pas ce à quoi sert le "if 0" et le "stop"
    Bonjour,

    J'ai trouvé ce code ici : https://thesasreference.wordpress.co...4/compter_obs/

    L'explication :
    Le « IF 0 » est une instruction toujours fausse, donc l’exécution de l’instruction conditionnée ne sera jamais réalisée. La récupération du nombre d’observations depuis le dictionnaire du data set se fait au moment de la compilation par le SAS DATA COMPILER, qui stocke dans une variable qui est forcément temporaire citée avec l’option « NOBS= ».

    L’instruction STOP ne permet pas d’écourter le temps de lecture des données car il n’y pas d’exécution de lecture. Alors que se passe-t-il ?

    L’étape DATA étant une boucle automatique dès qu’une instruction de lecture (Set, Merge, Modify, Update, …) de data set est détectée par le Superviseur SAS et par compilateur de l’étape DATA , l’exécution de la boucle est automatique à cause de la détection de l’instruction « SET » et SAS va vérifier si le test induit par l’instruction « IF 0 » (comprendre if 0 =1) n’est pas devenu vrai ! D’où la nécessité de poser l’instruction SAS « STOP », pour éviter la boucle de l’étape DATA.

    On peut même trouver du code plus optimisé.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Merci renoriwal. C'est gentil.

Discussions similaires

  1. Nombre d'observations d'une table
    Par stefsas dans le forum Macro
    Réponses: 4
    Dernier message: 21/04/2011, 17h43
  2. Stocker un nombre trop grand pour une variable
    Par mouhammed dans le forum C
    Réponses: 2
    Dernier message: 27/12/2007, 12h57
  3. Stocker Valeur Enum Sql Server 2000
    Par b_lob dans le forum Accès aux données
    Réponses: 7
    Dernier message: 16/11/2007, 14h46
  4. Stocker un nombre
    Par max-mag dans le forum Langage
    Réponses: 7
    Dernier message: 22/09/2007, 09h58
  5. Stocker un nombre réel
    Par julson dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/04/2004, 09h59

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