SAS - Do statement - If statement

 
Vista:

Do statement - If statement

Publicado por Elena (1 intervención) el 02/09/2009 14:04:26
Hola a tod@s,
os ruego me ayudéis con un código que estoy ejecutando desde ayer y que no consigo solucionar.

Tengo 33 variables que se llaman status_m1, status_m2,…,status_m33 y otras 33 variables que se llaman saldiscre_m1,...,saldiscre_m33. Quiero cambiar sus valores por missing cuando cumplan una condición. Lo hago con la siguientes sentencias pero no me da error y además me reemplaza los valores siempre, cumplan o no la condición del if. Os paso el código para ver si sabéis qué hago mal

%macro blancos();
%do i=1 %to 33;
%if i<m_inicio or i>m_fin %then %do;
status_m&i=' ' ;
saldiscre_m&i=. ;
%end;
%end;
%mend;

data seguim4;
set seguim3;
%blancos();
run;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Do statement - If statement

Publicado por rvaquerizo (2 intervenciones) el 03/11/2009 15:40:28
Hola, lo mejor es que uses un array:

data seguim4;
set seguim3;
array st (*) status:;
array sal (*) saldiscre:;

do i=1 to dim(st);
if st(i)>condicion then st(i)=.;
end;

do i=1 to dim(sal);
if sal(i)>condicion then st(al)=.;
end;
run;

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Do statement - If statement

Publicado por dani (1 intervención) el 29/01/2010 12:20:48
Creo que cuando escribes la setencia "%if i<m_inicio or i>m_fin %then %do; ", no haces referencia al valor de i como &i. Además, las dos variables m_inicio y m_fin no sé cómo las tienes definidas, pero tampoco haces referencia al valor que se les haya asignado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar