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

ODS et reporting Discussion :

PROC TABULATE avec données classées


Sujet :

ODS et reporting

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut PROC TABULATE avec données classées
    Bonjour,

    Je souhaite faire un tableau de synthèse avec une PROC TABULATE et je souhaite que les semaines soient classées dans l'ordre de la table d'entrée.
    La table d'entrée HISTORIQUE_TEST_2 est classée par date de facture.
    En utilisant l'instruction ORDER = DATA, certaines semaines sont mal classées.
    Pourquoi ? Quelle instruction utiliser ?

    Voici mon code :

    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.historique_test2;
    infile 'O:\SAS\exosas\Classeur1.txt'
    delimiter = '09'x	missover	dsd	lrecl = 32767	firstobs = 2;
    attrib DATE_FACTURE length = 8 format = ddmmyy10. Informat = ddmmyy10.;
    attrib ANNEE length = 8	format = 8. informat = 8.;
    attrib ACTIF length = 8	format = 8. informat = 8.;
    attrib SEMAINE2	length = 8	format = 8. informat = 8.;
    input DATE_FACTURE ANNEE ACTIF SEMAINE2;
    run;
     
    PROC SORT DATA = TEST.HISTORIQUE_TEST2;
     BY DATE_FACTURE;
    RUN;
     
    PROC TABULATE DATA = TEST.HISTORIQUE_TEST2
    OUT = PC_STAT.NB_SEMAINES_CLIENT
    (DROP = _TYPE_ _PAGE_ _TABLE_ RENAME = (ACTIF_Sum = ACTIF));
     CLASS ANNEE SEMAINE2 / ORDER = DATA;
     VAR ACTIF;
     TABLE ANNEE * SEMAINE2, ACTIF * SUM;
    RUN;
    Merci de votre aide

    delph_le
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 476
    Points
    4 476
    Par défaut
    Bonjour.
    L'option ORDER=DATA indique à SAS un ordre pour prendre les modalités des variables, mais cet ordre n'est pas réévalué en cas d'imbrication, comme ici. Du coup, le plus simple est de trier plutôt selon SEMAINE2 et ANNEE dans la proc Sort. Les semaines devraient alors être affichées dans le bon ordre.
    Olivier
    Bon courage.
    Olivier

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Points : 61
    Points
    61
    Par défaut Attention au ORDER
    Bonjour,

    Je crois qu'il ne suffit pas de trier car si on laisse l'option ORDER = DATA, le même problème surviendra. Il faut enlever le ORDER = DATA.

    Aussi, on peut se passer du tri si on met l'option /ASCENDING dans le CLASS du tabulate, ce dernier va gérer le tri par lui-même...

    Bonne journée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    PROC TABULATE DATA = TEST.HISTORIQUE_TEST2
    OUT = PC_STAT.NB_SEMAINES_CLIENT
    (DROP = _TYPE_ _PAGE_ _TABLE_ RENAME = (ACTIF_Sum = ACTIF));
     CLASS ANNEE SEMAINE2 / ASCENDING;
     VAR ACTIF;
     TABLE ANNEE * SEMAINE2, ACTIF * SUM;
    RUN;

Discussions similaires

  1. Proc tabulate avec plusieurs niveaux
    Par m.brahim dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 09/01/2012, 16h20
  2. Bordure de tableaux avec proc tabulate
    Par ibrahima13 dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 21/06/2011, 17h27
  3. Réponses: 4
    Dernier message: 28/07/2010, 17h33
  4. Donnée manquantes dans proc tabulate
    Par Sasophile dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 06/06/2009, 17h15
  5. Réponses: 1
    Dernier message: 25/11/2008, 12h11

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