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 STAT Discussion :

Comment récupérer une donnée dans la fenêtre LOG?


Sujet :

SAS STAT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Comment récupérer une donnée dans la fenêtre LOG?
    Bonsoir à vous,
    Premièrement, je souhaiterais savoir la procédure à suivre pour récupérer la moyenne d'une variable dans la fenêtre LOG sans avoir à le faire " à la main " après avoir utiliser la PROC MEANS.
    Deuxièmement, j'aimerais aussi savoir comment faire pour exprimer les valeurs (cf. code ci-dessous) d'une variable en pourcentage par rapport à sa moyenne. Merci d'avance.

    Voici mon code incomplet :

    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
    DATA table;
    INPUT ID  AGE  SEXE$  GPA  SCORE;
    CARDS;
    1  18  M  3.7  650
    2  18  F  2.0  490
    3  19  F  3.3  580
    ;
    RUN;
     
    DATA jetrie;
    SET table;
    PROC SORT DATA=jetrie;
    BY GPA SCORE;
    RUN;
     
    PROC MEANS DATA=jetrie;
    VAR GPA SCORE; 
    OUTPUT OUT=stats;
    RUN;

  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
    une fois récupéré tu veux en faire quoi ?
    tu as vu que ton code générait une table ?

    pour les ratios, le mieux est de faire une proc SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc SQL ;
    create table test as
    select age, age/sum(age) as ratio
    from sashelp.class;
    run;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par datametric Voir le message
    une fois récupéré tu veux en faire quoi ?
    tu as vu que ton code générait une table ?

    pour les ratios, le mieux est de faire une proc SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc SQL ;
    create table test as
    select age, age/sum(age) as ratio
    from sashelp.class;
    run;

    Bonsoir,
    Je ne peux pas utiliser la proc SQL car je ne l'ai pas encore abordé en cours. Il est demandé de le faire le plus simplement possible.
    une fois la valeur récupérée, je calculerai le pourcentage de celle-ci par rapport à sa moyenne globale. En ce qui concerne mon code, il génère bien des tables mais il faut le compléter et je ne sais comment faire.
    Merci d'avance.
    DébutantenSAS

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Pourquoi trier ?
    En reprenant le code proposé (hors SQL), une solution serait de passer par des macro-variables...

    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
    22
    23
    PROC MEANS DATA=TABLE noprint ; 
       VAR GPA SCORE ; 
       OUTPUT OUT=stats mean= /autoname ;
    RUN ;
     
    /* Moyennes en macro-variable */
    DATA _NULL_ ;
       SET STATS ;
       CALL SYMPUT ('MVGPA',compress(GPA_Mean));
       CALL SYMPUT ('MVSCORE',compress(SCORE_Mean));
    RUN ;
     
    /* Calculs */
    DATA RESULTAT ;
       SET TABLE ;
       GPA_Mean = &MVGPA ;
       SCORE_Mean = &MVSCORE ;
       FORMAT PCENT_GPA PCENT_SCORE percent10.2 ;
       PCENT_GPA = GPA / &MVGPA ;
       PCENT_SCORE = SCORE / &MVSCORE ;
    RUN ;
     
    PROC PRINT ; RUN ;
    Bon courage !
    Bruno.

  5. #5
    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
    ah c'est pour un cours, c'est donc cela qu'il veut probablement voir...

    Test et dis moi je ne l'ai pas exécuté.

    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
    22
    23
    DATA jetrie;
    INPUT ID  AGE  SEXE$  GPA  SCORE;
    CARDS;
    1  18  M  3.7  650
    2  18  F  2.0  490
    3  19  F  3.3  580
    ;
    RUN;
     
    /* Summary, c'est Proc Means + Noprint */
    PROC Summary DATA=TABLE  ; 
       VAR GPA SCORE ; 
       OUTPUT OUT=stats mean= /autoname ;
    RUN ;
     
    data jetrie;
    set jetrie;
    if _n_=1 then set stats; /* Stats contient une ligne donc il a positionné les valeurs dans la première ligne puis les répéte ensuite comme un Retain */
    FORMAT PCENT_GPA PCENT_SCORE percent10.2 ;
    PCENT_GPA = GPA / GPA_MEAN ;
    PCENT_SCORE = SCORE / score_MEAN ;
    drop _type_ _freq_;
    run;
    Stéphane.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2013, 09h25
  2. comment récupérer les données dans contact sur une feuille excel?
    Par Granfred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/01/2009, 15h02
  3. comment récupérer une donnée dans une requête
    Par valerie02 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/06/2007, 23h20
  4. Réponses: 27
    Dernier message: 19/09/2006, 09h51

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