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 :

Explication de code proc tabulate


Sujet :

SAS Base

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Explication de code proc tabulate
    Bonjour

    Je ne comprends pas tout à fait ce que fait cette procédure. En plus mon journal me dit qu'il ne trouve pas une variable (nexeinv) mais sans le reste du code je me doute bien que vous ne pourrez pas m'en dire plus. Seulement, dans quelle table doit-elle se trouver ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc tabulate data=work_rm.importants_aggreg (where=(seuil_ctb='1')) format=10.0 NOSEPS FORMCHAR="~    " out=work_rm.sortie_aggreg;
        class societe gest nexeinv;
        var Nb_sin;
        table societe*gest*nexeinv,N*Nb_sin /RTS=10;
    run;
    work_rm est une notation ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Hello et bienvenue;

    work_rm est une bibléothéque , c'est comme la WORK, SASHELP. c'est le nom logique que tu donnes à ton emplacement où se trouvent les tables sur lesquelles tu veux travailler ou tu veux stocker tes résultats.

    La procédrue TABULATE, c'est elle qui produit les tableaux croisés.

    ta variable manquante (nexeinv), doit se trouver dans la table :importants_aggreg.
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci

    En effet, la table qui doit contenir cette variable contient 0 observation. Cela dit, même sans ligne, les variables sont présentes, donc il devrait la trouver.

    Ma table "importants_aggreg" va chercher les données se trouvant dans une table qui s'appelle "importants", or cette table est également vide, et ne contient pas nexeinv.

    Et dans cette table, je place (normalement) la table M2010 en gardant certaines variables (cf code).

    Or dans M2010, ma variable nexeinv est sous un label différent (numéro d'exercice...). Est-ce la raison de ce non fonctionnement ? Cela m'étonnerait. L'instruction keep garde bien les noms de variables et on les labels, non ?

    data work_rm.importants;
    set mat.M2010 (keep=ssin cisrsin mdepcum mdepori meva mevamod cste9 cper criseve tsin nexeinv nexeeve neve nsoc)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    L'instruction keep garde bien les noms de variables et *non* les labels, non ?
    (J'ai oublié de me relire)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ! Le journal me dit aussi que "la biblio mat is not assigned". Voilà peut-être la source d'erreur. Mais que cela veut-il dire ? Et pourquoi trouverait-il les autres variables, alors ?

  6. #6
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    1/ de mémoire je crois que pour utiliser une variable dans l'instruction TABLE elle doit être déclarée dans l'instruction CLASS ou VAR.

    2/ le message "la biblio mat is not assigned" indique qu'on cherche à utiliser une bibliothèque non assignée, je vois 2 possibilités :
    - soit c'est une erreur qui ne concerne pas la proc tabulate, mais une autre étape où vous utilisez un nom de table comme MAT.DATA1 par exemple
    - soit work_rm.importants_aggreg est une vue qui utiliserait cette bibliothèque, qui a pu être désallouée.

    La log serait utile pour ce message.

    Merci,
    Géraldine Deschamps
    Cordialement,

    --
    Géraldine CADE-DESCHAMPS
    Consultante ▪ Support Clients SAS
    Tel: +33 1 60 62 12 12 ▪ support@sas.com
    www.sas.com/france
    SAS® … THE POWER TO KNOW®

Discussions similaires

  1. Explication de code
    Par sacco dans le forum C
    Réponses: 2
    Dernier message: 12/04/2006, 23h13
  2. Explication de code
    Par claralavraie dans le forum Linux
    Réponses: 1
    Dernier message: 20/03/2006, 09h58
  3. Shell - Explication de code
    Par claralavraie dans le forum Linux
    Réponses: 13
    Dernier message: 13/01/2006, 16h03
  4. Explication de code - RE
    Par deedoo dans le forum Général Python
    Réponses: 23
    Dernier message: 29/07/2005, 14h00
  5. Explication de code simple
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/03/2005, 11h31

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