Bonjour,
J'ai un problème sur SAS que je n'arrive pas à résoudre, pourtant je pensais m'y prendre de la bonne façon... voici mon problème :
- J'ai plusieurs lignes par identifiant,
- J'ai une information sur la première ligne de chaque identifiant.
Je voudrais la voir appliquée à toutes les lignes du même identifiant.
Exemple concret sur SASHELP.CLASS :
Immaginons que le sexe correspondant à ma variable d'identifiant. J'ai un âge sur la première ligne de chaque identifiant. Je le veux partout.
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 proc sort data = sashelp.class out=table; by sex; run; data table; set table; by sex; if not first.sex then age = .; keep sex age; run; data table; set table; retain age2; by sex; if not first.sex then age2 = lag(age); else age2 = age; run;
Je pensais qu'en utilisant RETAIN et LAG de cette manière c'était bon mais visiblement pas...
Et, de manière générale, y a-t-il une possibilité pour faire ce traitement quelque soit l'endroit où se trouve mon information (par exemple, pour un identifiant, j'ai l'information AGE sur la deuxième observation, sur la cinquième observation pour l'identifiant suivant...) ?
Merci pour votre aide,
alers
Partager