Le forum du Master ESA économétrie et statistique appliquée - Université d'Orléans

Vous n'êtes pas identifié.

Annonce

Vous êtes sur le forum du master ESA !

Le site du master ESA - description de la formation, notes de cours, contacts... est ici :

http://www.univ-orleans.fr/deg/masters/ESA/

#1 13-12-2007 11:25:28

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5069
Site web

amusons nous avez l'étape DATA

Voici les données brutes (à copier coller tel quel sans aucune modification)

Code:

0 famille Dupont
4 Pierre      38 Sophie      37 Théodore     6 Marcelline   5
0 famille Dubois
3 Frédéric    42 Michelle    37 Marie       11
0 famille Durand
1 Jean        53
0 famille Dufour
2 Hervé       78 Marie       75

et voici ce à quoi vous devez arriver :

Code:

                         Obs     nom      cle    i    prenom        age

                           1    Dupont     4     1    Pierre         38
                           2    Dupont     4     2    Sophie         37
                           3    Dupont     4     3    Théodore        6
                           4    Dupont     4     4    Marcelline      5
                           5    Dubois     3     1    Frédéric       42
                           6    Dubois     3     2    Michelle       37
                           7    Dubois     3     3    Marie          11
                           8    Durand     1     1    Jean           53
                           9    Dufour     2     1    Hervé          78
                          10    Dufour     2     2    Marie          75

entre DATA et CARDS, 8 instructions...

amusez-vous bien !

cordialement

SR

Hors ligne

 

#2 14-12-2007 06:42:55

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: amusons nous avez l'étape DATA

http://www.nintendo-league.com/images/smileysv3/drapeau.gif

J'arrive pas à faire mieux que ça :

Code:

                             Obs     nom      cle    i    prenom      age

                               1    Dupont     4     1                  .
                               2    Dupont     4     2                  .
                               3    Dupont     4     3                  .
                               4    Dupont     4     4    Pierre       38
                               5    Dubois     3     1                  .
                               6    Dubois     3     2                  .
                               7    Dubois     3     3    Frédéric     42
                               8    Dubois     3     4    Frédéric     42
                               9    Durand     1     1    Jean         53
                              10    Durand     1     2    Jean         53
                              11    Durand     1     3    Jean         53
                              12    Durand     1     4    Jean         53
                              13    Dufour     2     1                  .
                              14    Dufour     2     2    Hervé        78
                              15    Dufour     2     3    Hervé        78
                              16    Dufour     2     4    Hervé        78

Je n'ai pas réussi à parcourir les lignes paires...

Hors ligne

 

#3 14-12-2007 08:50:30

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5069
Site web

Re: amusons nous avez l'étape DATA

un petit effort !

Hors ligne

 

#4 15-12-2007 09:01:45

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5069
Site web

Re: amusons nous avez l'étape DATA

bon, la solution :

Code:

DATA famille;
RETAIN nom;
INPUT cle @;
IF cle=0 THEN INPUT @11 nom $;
ELSE DO i=1 TO cle;
    INPUT  @(3+15*(i-1)) prenom $12. age @@ ;
    OUTPUT;
    END;
CARDS;
0 famille Dupont
4 Pierre      38 Sophie      37 Théodore     6 Marcelline   5
0 famille Dubois
3 Frédéric    42 Michelle    37 Marie       11
0 famille Durand
1 Jean        53
0 famille Dufour
2 Hervé       78 Marie       75
;RUN;

la subtilité consistait ici, grâce à une boucle DO, à repérer les prénoms grâce à une instruction @X, avec X lié au numéro de la boucle. Ne pas oublier le @@ puisque, lorsque vous avez lu vos deux variables, SAS va vouloir aller à la ligne suivante. Le @@ lui indique de ne pas aller à la ligne suivante : il peut donc continuer à lire des informations sur la même ligne.

SR

Hors ligne

 

#5 15-12-2007 13:19:51

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: amusons nous avez l'étape DATA

arf... presque !!

voici mon programme :

Code:

data bidon ;

retain nom ;
p=1 ;

input cle @ ;
if cle=0 then input @11 nom $ ;

else do i=1 to 4 ;
k=3*p ;
if cle=i then input @k prenom $12. age :2. @@ ;
p=p+5;
output;
end;

cards;
0 famille Dupont
4 Pierre      38 Sophie      37 Théodore     6 Marcelline   5
0 famille Dubois
3 Frédéric    42 Michelle    37 Marie       11
0 famille Durand
1 Jean        53
0 famille Dufour
2 Hervé       78 Marie       75
;run;

Pourquoi il ne marchait pas ?!!

fallait quand même trouvé une relation entre : 3 18 33 48 !

Hors ligne

 

#6 15-12-2007 14:13:12

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: amusons nous avez l'étape DATA

ah ok !! c'est : do i=1 to "cle" sans le "if" ! j'ai rien dit ! lol

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson