Artículos

/**
_n_ Número de observación
Inmediatamente tras la sentencia data...; se produce la actualización de la variable de
sistema _n_. Esta variable toma valor 1 en la primera observación, y aumenta de valor en
una unidad cada vez que el proceso iterativo pasa por la sentencia data...;.
**/
/**
La grabación de la observación en el archivo nombrado en la sentencia data se produce:
- o bien al llegar a alguna sentencia “output archivo; “ , si existe esta sentencia en el bloque
data,
- o bien al llegar a una sentencia que marque el fin del paso data. Estas sentencias de fin de
paso data pueden ser:
cards;
run;
proc...;
data...;
**/
/**
Ejemplo: funcionamiento iterativo del paso data
**/
data uno;
put 'linea siguiente a data';
put 'Observación no' _N_ a= b=;
input a b @@;
put 'linea siguiente a input';
put 'Observación no' _N_ a= b=;
cards;
4 5 6 7 8 9
;
/**
OUTPUT
La sentencia OUTPUT significa “guarda la observación que está actualmente en la memoria
del paso data, en el archivo nombrado”.
**/
data out1 out2;
input x y @@;
if x>y then output out1;
else output out2;
cards;
5 6 7 8 4 3 2 1
;
run;
data ej1 ej2;
infile '/folders/myfolders/clases/estudiantes21.txt';
input x y @@;
if x>y then output ej1;
else output ej2;

run;
proc print data=software.ejemxl;
run;
Ejemplo: creación de dos archivos SAS diferentes en un mismo paso data
data uno dos;
input a b @@;
if a>b then output uno;else output dos;
cards;
4 5 7 6 8 9
;
Funcionamiento por defecto de la sentencia OUTPUT
- La sentencia OUTPUT solamente se puede referir a archivos nombrados previamente en la
sentencia data.
- Si no hay ninguna sentencia OUTPUT en el paso data, la grabación de la actual observación
en el primer archivo nombrado en la sentencia DATA se produce al llegar al fin del paso
data, determinado por otra sentencia DATA, CARDS, PROC , RUN, o el resto del editor
vacío.
- Si hay alguna sentencia OUTPUT en el paso data ya no se producen grabaciones por defecto
en el final del paso data.
- Si en la sentencia data hay dos ( o más) archivos nombrados, y hay una sentencia OUTPUT
nombrada en el paso data, no se produce grabación en los otros archivos.
- Si en la sentencia data hay dos ( o más) archivos nombrados, y no hay ninguna sentencia
OUTPUT en el paso data, se produce la grabación de las observaciones en su lugar por
defecto (en la sentencia de final de paso data) en el primer archivo nombrado en la sentencia
data, y no se guarda ninguna observación en el segundo archivo o posteriores.