/***
Con DATA, SET o MERGE
DROP=variables
No graba o lee del archivo nombrado las variables mencionadas. De esta manera se ahorra
memoria.
KEEP=variables
Sólo graba o lee del archivo nombrado las variables mencionadas
FIRSTOBS=n
Primera Observación a leer (opción solo disponible en SET y MERGE).
OBS=n
Última Observación a leer (opción solo disponible en SET y MERGE).
WHERE=(condición lógica)
Sólo lee o guarda las observaciones que cumplen la condición. Esta opción también está
disponible en los procedimientos SAS.
IN=var
Crea una variable cuyo valor es 1 si la Observación pertenece al archivo nombrado y 0 si no
(NO se utiliza en la sentencia data, solo en set o merge).
***/

/** informac jornada puntosa puntosb rsult suma
otro solo la jornada y la competici�n y el partido jugado como equipo
los partidos ganados (de �ste)
todas las variables pero solo las var de 18 a 40
Que lea a partir de la 10 todas menos suma**/
data software.ejemplo1;
set clase.baloncesto (keep= jornada puntosa puntosb result suma_A_B);
run;
data software.ejemplo2;
set clase.baloncesto (drop= contrinc puntosa puntosb puntost result suma_A_B);
run;
data software.ejemplo3;
set software.ejemplo1 (where=(result='Ganado'));
run;
data software. ejemplo4;
set clase.baloncesto (firstobs=18 obs=40);
run;
data software. ejemplo5;
set clase.baloncesto  (firstobs=10 drop=suma_A_B);
run;
/**
El archivo SAS matriz contiene 15 casos de las var. X1,X2,Y1,Y2.
El archivo uno contiene las observaciones de la 4 a la 15 de las variables X1 y X2 del
archivo matriz. El archivo dos contiene las observaciones de la 1 a la 10 de las variables X1 y
Y1 del archivo matriz.
**/
data uno(keep=X1 X2 firstobs=4) dos (drop=X2 obs=10);
set matriz (drop=Y2);
run;
/**
WHERE
**/
data matriz;
input x z nombre $;
cards;
3 6 pepe
8 3 maria
9 5 JUAN
;
data uno;
set matriz (where=(x>7 and (0<z<6 or nombre='JUAN')));
run;
proc print;
run;
/**
La opción IN=variable también es de cierta utilidad para controlar observaciones leídas. A
menudo, cuando se unen dos archivos SAS con merge, solo se desea unir aquellas
observaciones que existen en los dos archivos, es decir, que tienen el mismo valor en la
variable clave en los dos archivos. Aquellas observaciones que están en un archivo y no en el
otro, en el sentido de la variable clave de identificación, no serían guardadas. El siguiente
ejemplo ilustra como realizar una unión de archivos SAS con esta condición.
**/
data persona;
input nombre $ sexo $;
cards;
maria f
ana f
tomas m
;
data lugar;
input nombre $ ciudad $ region;
cards;
jose alava 5
maria malaga 2
maria orense 7
ana orense 6;
proc sort data=persona;by nombre;
proc sort data=lugar;by nombre;
data datos;
merge persona (in=per) lugar (in=lug);
by nombre;
run;