Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2011, 23h04   #1
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Par défaut Table transformé en tableau tableau

Bonjour

a partir d'une macro je lis des tables que je veux transformer en tableau afin d exploiter les resultats de ces tables. et la je rencontre quelque soucis.
Le problème c est que je ne peux pas poster toutes les tables et les prog ici car ca serait trop lourd;
mais quelqu un peu m aider
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 09h28   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Salut,
Comment veux-tu de l'aide avec ce peu d'informations voire pas du tout?
Quel genre de tableau tu veux au final? un exemple de table et le résultat attendu pourrait suffir.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 09h29   #3
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Bonjour ,
1-c'est quoi table et tableau pour toi?
2-peux tu poster l'étape qui te cause problème?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h14   #4
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
voila le code

Code :
1
2
PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = .)) OUT=ADIM2 NODUPKEYS; 
	BY USUBJID VISITNUM;
voici l'erreur


Code :
1
2
3
4
5
6
7
8
9
 PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 ne .)) OUT=ADIM1(KEEP= USUBJID VISITNUM)
2732! NODUPKEYS;
ERROR: WHERE clause operator requires compatible VARIABLES.
2733      BY USUBJID VISITNUM;
2734  RUN;
 
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The DATA SET WORK.ADIM1 may be incomplete.  When this step was stopped there were 0
         observations AND 0 VARIABLES.
j aurais bien mis les balise code mais elle sont pas disponible
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h18   #5
Membre du Club
 
Homme Fabien
Inscription : novembre 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Localisation : France

Informations forums :
Inscription : novembre 2008
Messages : 59
Points : 56
Points : 56
Salut,

Essai en 2 etapes alors :

Code :
1
2
3
4
5
6
7
8
 
DATA ADIM;
SET DB.ADIM;
IF LBSTRES1 = .;
run;
 
PROC SORT DATA=ADIM OUT=ADIM2 NODUPKEYS; 
BY USUBJID VISITNUM;run;
Suistrop
suistrop est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/05/2011, 14h29   #6
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Le problème qui se pose est que dans ma table j ai des valeur limite de détection donc symbolise par des >10 et donc mal gérer par cette procédure
Code :
1
2
3
4
5
6
7
8
9
10
5795
5796   DATA ADIM;
5797   SET DB.ADIM;
5798   IF LBSTRES1 = .;
5799   run;
 
NOTE: Character VALUES have been converted TO numeric VALUES at the places given BY:
      (Line):(COLUMN).
      5798:4
NOTE: Invalid numeric DATA, LBSTRES1='<10' , at line 5798 COLUMN 4.
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h37   #7
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Qu'est ce que tu racontes?
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h45   #8
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
que dans mes tables j ai une valeur qui n est pas entierement numerique et elle est mal gerer, donc un idée pour gérer le >10
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h53   #9
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Citation:
Envoyé par MEGAMIND2 Voir le message
Qu'est ce que tu racontes?
ou est ce que je n'ai pas été claire que j éclaircissement la chose pour tout le monde sur le fofo
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 15h12   #10
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Avec une log, c'est encore mieux et ça te fait gagner du temps...
Tu as une variable mixte (avec des valeurs numéric et caractère) et c'est pas top.
ça donne quoi si tu faisais
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 16h04   #11
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Code :
1
2
3
4
5
6
7
8
9
10
11
DATA ADIM;
SET DB.ADIM;
IF MISSING(LBSTRES1);
run;
 
PROC SORT DATA=ADIM OUT=ADIM2 NODUPKEYS; 
BY USUBJID VISITNUM;run;
 
PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS; 
	BY USUBJID VISITNUM;
RUN;



et en log j'ai

Code :
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
46
47
48
49
50
51
 DATA ADIM;
28648   SET DB.ADIM;
28649   IF MISSING(LBSTRES1);
28650   run;
 
NOTE: There were 25431 observations READ FROM the DATA SET DB.ADIM.
NOTE: The DATA SET WORK.ADIM has 0 observations AND 47 VARIABLES.
NOTE: DATA statement used (Total process time):
      real time           0.46 seconds
      cpu time            0.10 seconds
 
 
28651
28652   PROC SORT DATA=ADIM OUT=ADIM2 NODUPKEYS;
28653   BY USUBJID VISITNUM;run;
 
NOTE: Input DATA SET IS empty.
NOTE: 0 observations WITH duplicate KEY VALUES were deleted.
NOTE: The DATA SET WORK.ADIM2 has 0 observations AND 47 VARIABLES.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
28654
28655   PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                   -
                                                   22
                                                   76
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,
              a missing value, INPUT, PUT.
 
ERROR 76-322: Syntax error, statement will be ignored.
 
                                                     -
                                                     79
ERROR 79-322: Expecting a ).
 
28655 ! PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                     -
                                                     22
ERROR: Syntax error while parsing WHERE clause.
28655   PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                       -
                                                       180
ERROR 22-322: Missing ')' parenthesis FOR DATA SET OPTION list
 
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
 
28656       BY USUBJID VISITNUM;
28657   RUN;
voila voilou:
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 16h30   #12
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
C'est toi qui constitué la variable LBSTRES1? Si oui, tu pourrais posté la partie de code qui génere cette variable (il faut remonter à la source et mettre la variable soit tout en numéric ou alphanuméric).
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 17h12   #13
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
non je ne constitue pas la donnée je la recupere d une table. le >10 veut dire que n l on arrive pas le decteter car le seuil de detection est a 10

mais je pense que l on peu remplacer les >10 par du vide car l important ici sont puis prendre en consideration les donnée.

et ce je ne sais pas faire
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 17h53   #14
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Je pense que ta variable LBSTRES1 est de type alphanum (ouvre ta table et tu double clic dessus et tu verras un $ je pense).

Si tu veux le mettre à blanc :

Code :
IF LBSTRES1 ="<10" THEN LBSTRES1="";
sinon si tu veux filtrer sur cette modalité, il faudrait des quotes:
Code :
1
2
 
WHERE LBSTRES1 ="<10"
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h22   #15
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DATA ADSL;
	SET DB.ADSL(WHERE = (TRTP ne ""));
RUN;  
 
 
/* Birth date */
DATA AGE; 
	SET DB.DM;
	KEEP USUBJID BRTHDTC;
RUN;
 
/* Decision made by */
 
DATA WHO;
	SET DB.DS; 
    KEEP USUBJID DSSEQ;
RUN;
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h27   #16
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Code :
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
                                        /******************/
                                        /**   DATA SET   **/
                                        /******************/
 
DATA ADSL;
	SET DB.ADSL(WHERE = (TRTP ne ""));
RUN;  
 
 
/* Birth date */
DATA AGE; 
	SET DB.DM;
	KEEP USUBJID BRTHDTC;
RUN;
 
/* Decision made by */
 
DATA WHO;
	SET DB.DS; 
    KEEP USUBJID DSSEQ;
RUN;
 
/* No / at least one missing sero results */
 
DATA ADIM;
SET DB.ADIM;
IF MISSING(LBSTRES1);
run;
 
PROC SORT DATA=ADIM OUT=ADIM2 NODUPKEYS; 
BY USUBJID VISITNUM;run;
 
PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS; 
IF LBSTRES1 ="<10" THEN LBSTRES1="";
BY USUBJID VISITNUM;
RUN; 
 
 
 
 
PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = .)) OUT=ADIM2 NODUPKEYS; 
	BY USUBJID VISITNUM;
RUN;
 
	/* At least one result */
DATA ATONERES;
	SET ADIM1;
	ALLMISS="N";
RUN;
 
PROC TRANSPOSE DATA=ATONERES OUT=ATONERES_T(KEEP = USUBJID ALLMISS:) PREFIX=ALLMISS;
	VAR ALLMISS;
	ID VISITNUM;
	BY USUBJID;
RUN;
 
	/* At least one missing */
DATA ATONEMISS;
	SET ADIM2;
	ONEMISS="Y";
RUN;
 
PROC TRANSPOSE DATA=ATONEMISS OUT=ATONEMISS_T(KEEP = USUBJID ONEMISS:) PREFIX=ONEMISS;
	VAR ONEMISS;
	ID VISITNUM;
	BY USUBJID;
RUN;
 
/* Safety results */
 
PROC SORT DATA=DB.ADSR OUT=ADSR1(KEEP= USUBJID VISITNUM) NODUPKEYS;
	BY USUBJID VISITNUM;
RUN;
 
PROC SORT DATA=DB.ADAE OUT=ADAE1(KEEP= USUBJID VISITNUM) NODUPKEYS;
	BY USUBJID VISITNUM;
RUN;
 
	/* At least one sol */
DATA ATONESOL;
	SET ADSR1;
	SRMISS="N";
RUN;
 
PROC TRANSPOSE DATA=ATONESOL OUT=ATONESOL_T(KEEP = USUBJID SRMISS:) PREFIX=SRMISS;
	VAR SRMISS;
	ID VISITNUM;
	BY USUBJID;
RUN;
 
	/* At least one unsol */
DATA ATONEUNSOL;
	SET ADAE1;
	AEMISS="N";
RUN;
 
PROC TRANSPOSE DATA=ATONEUNSOL OUT=ATONEUNSOL_T(KEEP = USUBJID AEMISS:) PREFIX=AEMISS;
	VAR AEMISS;
	ID VISITNUM;
	BY USUBJID;
RUN;
 
 
/* gather all */
DATA DATA(DROP = AEMISS:);
	MERGE ADSL(IN=A) AGE WHO_T ATONERES_T ATONEMISS_T ATONESOL_T ATONEUNSOL_T;
	BY USUBJID;
	IF A;
 
	/* SERO */
	IF LBDTC1 ne "" AND ALLMISS1 ne "N" THEN  ALLMISS1 = "Y";
	IF LBDTC2 ne "" AND ALLMISS2 ne "N" THEN  ALLMISS2 = "Y";
	IF LBDTC1 ne "" AND ONEMISS1 ne "Y" THEN  ONEMISS1 = "N";
	IF LBDTC2 ne "" AND ONEMISS2 ne "Y" THEN  ONEMISS2 = "N";
 
 
	/* SAFETY */
	IF SVDTC2 ne "" AND SRMISS2 ne "N" THEN  SRMISS2 = "Y";
	IF SVDTC2 ne "" AND SRMISS2 ne "N" AND AEMISS1 ne "N" AND AEMISS2 ne "Y" THEN  SAFMISS2 = "N"; ELSE IF SVDTC2 ne "" THEN SAFMISS2 = "N"; 
 
RUN;
 
/* (N=###) */
PROC SQL NOPRINT;
	SELECT COUNT(DISTINCT USUBJID) INTO :ntot1-:ntot2
	FROM ADSL
	GROUP BY TRTPN;
QUIT;



voila tout mon code

et voila les erreur (log)

Code :
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
/******************/
23392                                          /**   DATA SET   **/
23393                                          /******************/
23394
23395  DATA ADSL;
23396      SET DB.ADSL(WHERE = (TRTP ne ""));
23397  RUN;
 
Note: Le format $U_YNU n'a pas pu être trouvé ou chargé.
Note:  4292 observations copiées de la table DB.ADSL.
      WHERE TRTP not = '';
Note: La table WORK.ADSL a 4292 observations et 71 variables.
Note: L'étape DATA used (Total process time):
      temps réel                   0.07 secondes
      temps processeur             0.06 secondes
 
 
23398
23399
23400  /* Birth date */
23401  DATA AGE;
23402      SET DB.DM;
23403      KEEP USUBJID BRTHDTC;
23404  RUN;
 
Note:  4292 observations copiées de la TABLE DB.DM.
Note: La TABLE WORK.AGE a 4292 observations et 2 VARIABLES.
Note: L'étape DATA used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.01 secondes
 
 
23405
23406  /* Decision made by */
23407
23408  DATA WHO;
23409      SET DB.DS;
23410      KEEP USUBJID DSSEQ;
23411  RUN;
 
Note:  4292 observations copiées de la table DB.DS.
Note: La table WORK.WHO a 4292 observations et 2 variables.
Note: L'étape DATA used (Total process time):
      temps réel                   0.03 secondes
      temps processeur             0.03 secondes
 
 
23412
23413  /* No / at least one missing sero results */
23414
23415  DATA ADIM;
23416  SET DB.ADIM;
23417  IF MISSING(LBSTRES1);
23418  run;
 
Note: Le format $U_YNU n'a pas pu être trouvé ou chargé.
Note:  25431 observations copiées de la table DB.ADIM.
Note: La table WORK.ADIM a 0 observations et 47 variables.
Note: L'étape DATA used (Total process time):
      temps réel                   0.08 secondes
      temps processeur             0.07 secondes
 
 
23419
23420  PROC SORT DATA=ADIM OUT=ADIM2 NODUPKEYS;
23421  BY USUBJID VISITNUM;run;
 
Note: La TABLE en entrée est vide.
Note: 0 observations WITH duplicate KEY VALUES were deleted.
Note: La TABLE WORK.ADIM2 a 0 observations et 47 VARIABLES.
Note: La procédure SORT used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.01 secondes
 
 
23422
23423  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                  -
                                                  22
                                                  76
ERREUR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, une chaîne entre guillemets, une constante numérique,
               une constante date temps, une valeur manquante, INPUT, PUT.
 
ERREUR 76-322: Erreur de syntaxe ; l'instruction sera ignorée.
 
                                                    -
                                                    79
ERREUR 79-322: ) requis.
 
23423! PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                    -
                                                    22
ERREUR: Erreur de syntaxe détectée lors de l'analyse de la clause WHERE.
23423  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                      -
                                                      180
ERREUR 22-322: Missing ')' parenthesis FOR DATA SET OPTION list
 
ERREUR 180-322: Instruction incorrecte ou mal utilisée.
 
23424  IF LBSTRES1 ="<10" THEN LBSTRES1="";
       --
       180
ERREUR 180-322: Instruction incorrecte ou mal utilisée.
23425  BY USUBJID VISITNUM;
23426  RUN;
23427
23428
23429
23430
 
Note: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
Note: La procédure SORT used (Total process time):
      temps réel                   0.04 secondes
      temps processeur             0.04 secondes
 
 
 
23431  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = .)) OUT=ADIM2 NODUPKEYS;
ERREUR: L'opérateur de la clause WHERE requiert des var. compatibles.
23432      BY USUBJID VISITNUM;
23433  RUN;
 
Note: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
ATTENTION: Table WORK.ADIM2 peut-être incomplète. Lorsque cette étape s'est interrompue, il y avait 0 obs. et 0 VARIABLES.
ATTENTION: TABLE WORK.ADIM2 non remplacée car cette étape a été interrompue.
Note: La procédure SORT used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.00 secondes
 
23434
23435      /* At least one result */
 
 
23436  DATA ATONERES;
23437      SET ADIM1;
23438      ALLMISS="N";
23439  RUN;
 
Note:  0 observations copiées de la TABLE WORK.ADIM1.
Note: La TABLE WORK.ATONERES a 0 observations et 1 VARIABLES.
Note: L'étape DATA used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.03 secondes
 
 
23440
23441  PROC TRANSPOSE DATA=ATONERES OUT=ATONERES_T(KEEP = USUBJID ALLMISS:) PREFIX=ALLMISS;
 
23442      VAR ALLMISS;
23443      ID VISITNUM;
ERREUR: Variable VISITNUM introuvable.
23444      BY USUBJID;
ERREUR: Variable USUBJID introuvable.
23445  RUN;
 
Note: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
ATTENTION: TABLE WORK.ATONERES_T peut-être incomplète. Lorsque cette étape s'est interrompue, il y avait 0 obs. et 0 variables.
ATTENTION: Table WORK.ATONERES_T non remplacée car cette étape a été interrompue.
Note: La procédure TRANSPOSE used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.01 secondes
 
23446
23447      /* At least one missing */
 
 
23448  DATA ATONEMISS;
23449      SET ADIM2;
23450      ONEMISS="Y";
23451  RUN;
 
Note: Le format $U_YNU n'a pas pu être trouvé ou chargé.
Note:  0 observations copiées de la TABLE WORK.ADIM2.
Note: La TABLE WORK.ATONEMISS a 0 observations et 48 VARIABLES.
Note: L'étape DATA used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.01 secondes
 
 
23452
23453  PROC TRANSPOSE DATA=ATONEMISS OUT=ATONEMISS_T(KEEP = USUBJID ONEMISS:) PREFIX=ONEMISS;
 
23454      VAR ONEMISS;
23455      ID VISITNUM;
23456      BY USUBJID;
23457  RUN;
 
ATTENTION: La variable ONEMISS: dans la liste DROP, KEEP, ou RENAME n'a jamais été référencée.
Note:  0 observations copiées de la TABLE WORK.ATONEMISS.
Note: La TABLE WORK.ATONEMISS_T a 1 observations et 1 VARIABLES.
Note: La procédure TRANSPOSE used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.03 secondes
 
 
23458
23459  /* Safety results */
23460
23461  PROC SORT DATA=DB.ADSR OUT=ADSR1(KEEP= USUBJID VISITNUM) NODUPKEYS;
23462      BY USUBJID VISITNUM;
23463  RUN;
 
Note: 41944 observations WITH duplicate KEY VALUES were deleted.
Note:  46145 observations copiées de la TABLE DB.ADSR.
Note: La TABLE WORK.ADSR1 a 4201 observations et 2 VARIABLES.
Note: La procédure SORT used (Total process time):
      temps réel                   4.88 secondes
      temps processeur             0.46 secondes
 
 
23464
23465  PROC SORT DATA=DB.ADAE OUT=ADAE1(KEEP= USUBJID VISITNUM) NODUPKEYS;
23466      BY USUBJID VISITNUM;
23467  RUN;
 
Note: 36740 observations WITH duplicate KEY VALUES were deleted.
Note:  40429 observations copiées de la TABLE DB.ADAE.
Note: La TABLE WORK.ADAE1 a 3689 observations et 2 VARIABLES.
Note: La procédure SORT used (Total process time):
      temps réel                   2.22 secondes
      temps processeur             0.45 secondes
 
 
23468
23469      /* At least one sol */
23470  DATA ATONESOL;
23471      SET ADSR1;
23472      SRMISS="N";
23473  RUN;
 
Note:  4201 observations copiées de la TABLE WORK.ADSR1.
Note: La TABLE WORK.ATONESOL a 4201 observations et 3 VARIABLES.
Note: L'étape DATA used (Total process time):
      temps réel                   0.01 secondes
      temps processeur             0.01 secondes
 
 
23474
23475  PROC TRANSPOSE DATA=ATONESOL OUT=ATONESOL_T(KEEP = USUBJID SRMISS:) PREFIX=SRMISS;
 
23476      VAR SRMISS;
23477      ID VISITNUM;
23478      BY USUBJID;
23479  RUN;
 
Note:  4201 observations copiées de la table WORK.ATONESOL.
Note: La table WORK.ATONESOL_T a 4201 observations et 2 variables.
Note: La procédure TRANSPOSE used (Total process time):
      temps réel                   0.05 secondes
      temps processeur             0.04 secondes
 
 
23480
23481      /* At least one unsol */
23482  DATA ATONEUNSOL;
23483      SET ADAE1;
23484      AEMISS="N";
23485  RUN;
 
Note:  3689 observations copiées de la table WORK.ADAE1.
Note: La table WORK.ATONEUNSOL a 3689 observations et 3 variables.
Note: L'étape DATA used (Total process time):
      temps réel                   0.02 secondes
      temps processeur             0.01 secondes
 
 
23486
23487  PROC TRANSPOSE DATA=ATONEUNSOL OUT=ATONEUNSOL_T(KEEP = USUBJID AEMISS:) PREFIX=AEMISS;
 
23488      VAR AEMISS;
23489      ID VISITNUM;
23490      BY USUBJID;
23491  RUN;
 
Note:  3689 observations copiées de la TABLE WORK.ATONEUNSOL.
Note: La TABLE WORK.ATONEUNSOL_T a 3628 observations et 3 VARIABLES.
Note: La procédure TRANSPOSE used (Total process time):
      temps réel                   0.05 secondes
      temps processeur             0.04 secondes
 
 
23492
23493
23494  /* gather all */
23495  DATA DATA(DROP = AEMISS:);
23496      MERGE ADSL(IN=A) AGE WHO_T ATONERES_T ATONEMISS_T ATONESOL_T ATONEUNSOL_T;
 
ERREUR: Le fichier WORK.WHO_T.DATA n'existe pas.
23497      BY USUBJID;
23498      IF A;
23499
23500      /* SERO */
23501      IF LBDTC1 ne "" AND ALLMISS1 ne "N" THEN  ALLMISS1 = "Y";
23502      IF LBDTC2 ne "" AND ALLMISS2 ne "N" THEN  ALLMISS2 = "Y";
23503      IF LBDTC1 ne "" AND ONEMISS1 ne "Y" THEN  ONEMISS1 = "N";
23504      IF LBDTC2 ne "" AND ONEMISS2 ne "Y" THEN  ONEMISS2 = "N";
23505
23506
23507      /* SAFETY */
23508      IF SVDTC2 ne "" AND SRMISS2 ne "N" THEN  SRMISS2 = "Y";
23509      IF SVDTC2 ne "" AND SRMISS2 ne "N" AND AEMISS1 ne "N" AND AEMISS2 ne "Y" THEN  SAFMISS2 = "N"; ELSE IF SVDTC2 ne ""
23509! THEN SAFMISS2 = "N";
23510
23511  RUN;
 
Note: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
ATTENTION: TABLE WORK.DATA peut-être incomplète. Lorsque cette étape s'est interrompue, il y avait 0 obs. et 80 variables.
ATTENTION: Table WORK.DATA non remplacée car cette étape a été interrompue.
Note: L'étape DATA used (Total process time):
      temps réel                   0.03 secondes
      temps processeur             0.01 secondes
 
 
23512
23513  /* (N=###) */
23514  PROC SQL NOPRINT;
23515      SELECT COUNT(DISTINCT USUBJID) INTO :ntot1-:ntot2
23516      FROM ADSL
23517      GROUP BY TRTPN;
23518  QUIT;
Note: La procédure SQL used (Total process time):
      temps réel                   0.04 secondes
      temps processeur             0.04 secondes
donc voila je n'y arrive pas
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h41   #17
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
LBTRES contien des donnée numerique; un symbole >10 et NR NR ET >10 peut etre remplacer par du vide
enfin voila
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h58   #18
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
pour le premier message d'erreur
Code :
1
2
 
Note: Le format $U_YNU n'a pas pu être trouvé ou chargé.
je t'ai déjà répondu dans l'autre topic.

mais le deuxième message d'erreur
Code :
1
2
3
4
5
6
 
23423  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = <10)) OUT=ADIM2 NODUPKEYS;
                                                  -
                                                  22
                                                  76
ERREUR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, une chaîne entre guillemets, une constante numérique,
il te dit il faut mettre <10 entre quottes donc
Code :
1
2
 
PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 ="<10")) OUT=ADIM2;....
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 22h39   #19
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Code :
1
2
3
4
 PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 =' <10') OUT=ADIM2 NODUPKEYS; 
IF LBSTRES1 ="<10" THEN LBSTRES1="";
BY USUBJID VISITNUM;
RUN;

tjs des erreurs malgre la correction
Code :
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
2739  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 =' <10') OUT=ADIM2 NODUPKEYS;
                                                        ---                -
                                                        22                 22
                                                                           79
2740  IF LBSTRES1 ="<10" THEN LBSTRES1="";
      --
      180
ERREUR 22-7: Nom d'option OUT incorrect.
ERREUR 22-322: Missing ')' parenthesis for data set option list
ERREUR 79-322: ) requis.
ERREUR 180-322: Instruction incorrecte ou mal utilisée.
2741  BY USUBJID VISITNUM;
2742  RUN;
 
Note: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
Note: La procédure SORT used (Total process time):
      temps réel                   0.01 secondes
      temps processeur             0.01 secondes
 
2743
2744
2745
2746
 
 
2747  PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 = ' <10')) OUT=ADIM2 NODUPKEYS;
2748      BY USUBJID VISITNUM;
2749  RUN;
 
Note: La TABLE en entrée est vide.
Note: 0 observations WITH duplicate KEY VALUES were deleted.
Note:  0 observations copiées de la TABLE DB.ADIM.
      WHERE LBSTRES1=' <10';
Note: La TABLE WORK.ADIM2 a 0 observations et 47 VARIABLES.
Note: La procédure SORT used (Total process time):
      temps réel                   0.11 secondes
      temps processeur             0.07 secondes
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 22h56   #20
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Code :
 PROC SORT DATA=DB.ADIM(WHERE = (LBSTRES1 =' <10')) OUT=ADIM2 NODUPKEYS;
il te manquait une parenthèse, sinon tu a pleins de tables que tu fais appels dans la work mais ça n'existe pas.

Bonne nuit!
Je vais au dodo moi
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h45.


 
 
 
 
Partenaires

Hébergement Web