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 :

Mettre des lignes côte à côte


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 32
    Points : 9
    Points
    9
    Par défaut Mettre des lignes côte à côte
    Bonjour à tous,

    J'ai un fichier comme suit

    id année cotisation prestation
    1 2013 100 100
    1 2014 110 120
    1 2015 130 110
    2 2014 110 120
    2 2015 130 110
    3 2015 150 90

    Et je voudrais avoir quelque chose qui ressemble à ça :

    id cot_2013 prest_2013 cot_2014 prest_2014 cot_2015 prest_2015
    1 100 100 110 120 130 110
    2 . . 110 120 130 110
    3 . . . . 150 90

    Est-ce possible ou pas du tout ?

    Merci d'avance de votre aide

    Bonne journée

  2. #2
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    Je te propose cette solution:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    data test;
    input id annee cotisation prest;
    cards;
    1 2013 100 100
    1 2014 110 120
    1 2015 130 110
    2 2014 110 120
    2 2015 130 110
    3 2015 150 90
    ;run;
     
     
    proc transpose data=test  out =test1 (drop=_name_) prefix=cot_; 
    by id;
    var cotisation;
    id annee;
    run;
     
    proc transpose data=test  out =test2 (drop=_name_) prefix=prest_; 
    by id;
    var prest;
    id annee;
    run;
     
    data fin ;
    merge  test1 test2;
    by id;
    run;
     
    proc sql noprint;
      select name into : var_lst separated by ','
         from sashelp.vcolumn
         where upcase(libname)='WORK'
         and upcase(memname)='FIN' 
                and name ne 'id'
         order by  (substr(name,length(name),-1)) asc; 
      create table finale as
         select id ,&var_lst.
         from fin;
    quit;
     
    proc datasets lib=WORK;
    delete test1 test2 fin;
    run;
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Super c'est exactement ce que je souhaitais.

    Merci pour la réponse rapide

    A bientôt !

  4. #4
    Membre éprouvé
    Avatar de Haache
    Homme Profil pro
    Doctorant & Ingénieur Statiaticien Economiste
    Inscrit en
    Mars 2014
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations professionnelles :
    Activité : Doctorant & Ingénieur Statiaticien Economiste

    Informations forums :
    Inscription : Mars 2014
    Messages : 349
    Points : 1 009
    Points
    1 009
    Billets dans le blog
    8
    Par défaut
    Merci a M.brahim, son code passe bien. Mais j'ai aussi une solution. Peut être que ça te plaira.

    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
    24
    data test;                                                                                                                              input id annee cotisation prest;                                                                                                        
    cards;                                                                                                                                  
    1 2013 100 100                                                                                                                          
    1 2014 110 120                                                                                                                          
    1 2015 130 110                                                                                                                          
    2 2014 110 120                                                                                                                          
    2 2015 130 110                                                                                                                          
    3 2015 150 90                                                                                                                           
    ;run;                                                                                                                                   
     
    data resultat;                                                                                                                          
    set test;                                                                                                                               
    if annee=2013 then comp=1;                                                                                                              
    else if annee=2014 then comp=2;                                                                                                         
    else if annee=2015 then comp=3;                                                                                                         
    run;                                                                                                                                    
    data resultat;                                                                                                                          
    set resultat;                                                                                                                           
    array A(*) Cot2013 Cot2014 Cot2015;                                                                                                     
    array B(*) Pres2013 Pres2014 Pres2015;                                                                                                  
    A(comp)=cotisation;                                                                                                                     
    B(comp)=prest;                                                                                                                          
    drop comp;                                                                                                                              
    run;
    • Faites un tour sur mon siteweb professionnel www.aristideelysee.16mb.com Des codes dans la section "media et code" pouvant vous aider que vous pouvez aussi partager sur les réseaux sociaux.
    • Visiter mon blog en cliquant ici! Des techniques, astuces et macros pour l'analyse quantitative.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/08/2008, 19h51
  2. [JTable] Mettre des lignes en gras
    Par Takis dans le forum Composants
    Réponses: 6
    Dernier message: 04/04/2008, 12h56
  3. mettre des lignes d'enregistrement en couleur
    Par kumo dans le forum Modélisation
    Réponses: 17
    Dernier message: 11/06/2007, 18h10
  4. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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