Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIN AL SAS
Autores:
Joan Valls
Lloren Badiella
Servei d'Estadstica UAB
1.
INTRODUCCIN.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 2 de 50
2.
NDICE.
1.
INTRODUCCIN.............................................................................................................................................2
2.
NDICE. ................................................................................................................................................................3
3.
INICIO DE LA SESIN..................................................................................................................................5
4.
SAS BASE............................................................................................................................................................7
4.1.
LOS PROCEDIMIENTOS Y EL PASO DATA...................................................................................7
4.2.
COM OBTENER DATOS CON SAS . ...............................................................................................7
4.2.1.
LEER DATOS INTERNOS................................................................................................................7
4.2.2.
LEER DATOS EXTERNOS...............................................................................................................9
4.3.
LISTAR LOS CONTENIDOS DE UN DATASET..............................................................................9
4.4.
GUARDAR DATOS INTERNAMENTE: DATASETS TEMPORALES Y DATASETS
PERMANENTES. ..................................................................................................................................................11
4.5.
LA INSTRUCCIN SET DEL PASO DATA. ....................................................................................11
4.6.
GUARDAR DATOS EXTERNAMENTE. ..........................................................................................13
4.7.
ORDENAR UN DATASET....................................................................................................................13
4.8.
MEZCLAR DATASETS.........................................................................................................................14
4.8.1.
AADIR VARIABLES..................................................................................................................... 14
4.8.2.
AADIR CASOS.............................................................................................................................. 15
4.9.
DAR ETIQUETAS A LAS VARIABLES Y A SUS VALORES. ...................................................16
4.10.
ASIGNACIONES Y CONDICIONES.............................................................................................17
4.11.
FUNCIONES DE SAS ....................................................................................................................18
4.12.
GENERACION DE VARIABLES ALEATORIAS.......................................................................19
4.13.
LOS PROCEDIMENTOS ...................................................................................................................21
5.
6.
7.
PROC UNIVARIATE..............................................................................................................................25
TABLAS DE FRECUENCIAS: PROC FREQ. ...................................................................................28
8.
9.
ANEXO.............................................................................................................................................................. 44
9.1.
9.2.
10.
10.1.
INTRODUCCIN ......................................................................................................................................47
10.1.1. Variables Macro.............................................................................................................................. 47
10.1.2. Generacin de Cdigo mediante Macros.................................................................................... 47
10.1.3. Macros con cdigo SAS.................................................................................................................. 48
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 3 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 4 de 50
3.
INICIO DE LA SESIN.
Ventana inicial.
.
.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 5 de 50
MDULOS DE SAS
SAS/ACCESS
SAS/AF
SAS/ASSIST
SAS/CONNECT
SAS/EIS
SAS/ETS
SAS/FSP
SAS/GIS
SAS/GRAPH
SAS/IML
SAS/INSIGHT
SAS/MDDB
SAS/ODBC
SAS/OR
SAS/QC
SAS/SPECTRAVIEW
SAS/STAT
SAS/IntrNet
DataMining
Facilidad para el anlisis estadstico
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 6 de 50
4.
SAS BASE
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 7 de 50
Pg. 8 de 50
La instruccin INFILE se utiliza para la lectura de datos externos y en ella se menciona la ruta
dnde es encuentra el fichero que contiene los datos. La opcin LRECL de la instruccin
INFILE indica la longitud mxima de cada lnea (es indispensable si cada registro tiene ms de
256 caracteres).
En la instruccin INPUT se declara las variables que se van a leer. Se escriben las columnas
dnde se encuentran las variables si el fichero de datos externo es de formato fijo. En el caso
en qu el fichero de datos est delimitado, no tiene sentido especificar las columnas. Por
defecto, el separador que lee SAS es el espacio, pero con la opcin DLM se define el
delimitador que deseado, por ejemplo: DLM='09'x si el fichero es encuentra delimitado por
tabuladores o DLM=';' si el fichero es encuentra delimitado por el smbolo " ; ".
Cualquier procedimiento trabaja con el dataset deseado utilizando la opcin
DATA=nombre_dataset. Por defecto, SAS utiliza el dataset creado en el paso DATA ms
reciente.
Es til observar el listado producido por PROC PRINT para comprobar que efectivamente los
datos se han ledo perfectamente (en ocasiones no se cometen errores en la sintaxis aunque
los datos no se leen adecuadamente).
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 9 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 10 de 50
WORK
WORK
VERDURAS
PATATA
TOMATE
CEBOLLA
TEMPORAL
TEMPORAL
PERMANENTE
Nota: Hasta ahora todos los datasets creados han sido temporales.
Nota: Los nombres de los datasets y de las variables no pueden tener ms de 8 caracteres.
Los datasets temporales se encuentran en una librera virtual llamada WORK que se vaca
automticamente cuando se apaga el programa. Para crear un dataset temporal, el nombre
tiene que ser simple: " a ", " pera " y " patata " son nombres vlidos o bien compuesto con la
librera work: "work.pera" es equivalente a "pera" (de hecho, son el mismo dataset).
Para crear un dataset permanente, en primer lugar se crea una librera con la instruccin
LIBNAME especificando el nombre y la ruta dnde ubicarla a continuacin. A partir de este
momento, para crear un dataset permanente que pertenezca a esta librera se utiliza el nombre
compuesto: "nombre_libreria.nombre_dataset".
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 11 de 50
Con las instrucciones TITLE, FOOTNOTE y OPTIONS se controlan la ventana OUTPUT. Las
dos primeras instrucciones permiten poner ttulos y pies de pgina.
En la instruccin OPTIONS, existen diversas opciones: LS=nm (o bien LINESIZE=nm)
define el nmero de caracteres por lnea, PS=nm (o bien PAGESIZE=nm) define el nmero
de lneas por pgina, NODATE borra la cabecera que aparece por defecto y NONUMBER
elimina la numeracin de las pginas.
Ahora los datasets PACTIVO1, PACTIVO2 y PACTIVO3 se encuentran en las libreras WORK
y FIEBRE, es decir, en total hay seis datasets diferentes (aunque de momento iguales dos a
dos). Los datasets mencionados se encuentran guardados de forma temporal en la librera
WORK y de forma permanente en la librera FIEBRE, fsicamente es encuentran en la ruta
especificada en la instruccin LIBNAME (A:\) cuando se cre la librera.
La instruccin SET asigna al dataset del paso DATA los mismos datos, variables y propiedades
que el dataset de la instruccin SET.
Cdigo ejemplo:
DATA B;
SET A;
RUN;
Con el cdigo anterior, se crea una copia del dataset A llamado B. En estos momentos, los
datasets A y B son idnticos y ambos temporales.
Cdigo ejemplo:
DATA B;
SET B;
VAR_A=1;
RUN;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 12 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 13 de 50
La instruccin MERGE permite aadir variables. Si los datasets que contienen las diferentes
variables no tienen el mismo nmero de observaciones, es recomendable utilizar la instruccin
BY variables. Las variables referidas en la instruccin BY, tienen que estar presentes en
ambos datasets, permitiendo identificar los diferentes casos dentro de cada dataset y
asignarles una cierta correspondencia. En caso de utilizar esta ltima opcin, los dos datasets
deben estar ordenados por las variables mencionadas en BY antes de realizar la fusin.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 14 de 50
Pg. 15 de 50
Cuando se incluye la opcin LABEL en el procedimiento PRINT, aparecen las etiquetas de las
variables, con la opcin NOOBS no aparece el nmero de observacin correspondiente a cada
caso. Utilizando VAR, se consigue que slo se listen las variables mencionadas (per defecto se
listan todas).
Si se incluyen las instrucciones LABEL y/o FORMAT en PROC PRINT, es una accin
temporal; utilizando LABEL y/o FORMAT en un paso DATA, se definen las etiquetas de las
variables o valores en el correspondiente dataset.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 16 de 50
Ventana OUTPUT con el resultado del PROC PRINT ejecutado (no hay LABELS).
En el caso anterior se crea un dataset temporal con las modificaciones. Cuando la condicin
que hay despus de IF es cierta, entonces se aplica la transformacin que aparece despus de
THEN. Cuando despus de un IF hay la instruccin ELSE, entonces se aplica la transformacin
que se menciona, slo cuando la condicin especificada en IF es falsa.
Al hacer diversas transformaciones en una sola condicin IF, deben estar todas ellas entre un
DO y un END.
Se pueden seleccionar casos datos que cumplan cierta condicin, a partir de la instruccin IF o
equivalentemente la instruccin WHERE:
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 17 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 18 de 50
Valor Absoluto
Raz Cuadrada
Redondear
Redondear con cierta precisin (la precisin es una
potencia de 10, por ejemplo: 10, 1, 0.1, 0.01, etc.)
Exponencial
Logaritmo
Logaritmo con base 2
Logaritmo con base 10
Coseno
Seno
Tangente
FUNCIONES ALEATORIAS:
RANBIN(SEMILLA, n, p)
RANNOR(SEMILLA)
RANPOI(SEMILLA, a)
RANUNI(SEMILLA)
Pg. 19 de 50
Ventana OUTPUT con parte del resultado de PROC PRINT del dataset
COMP3.
A partir del bucle DO - END, cada vez que se ejecuta la instruccin OUTPUT, los valores de las
variables NOR, UNI y NUM son aadidas al dataset. As pues, el nmero de iteraciones del
bucle da el nmero total de observaciones del dataset final.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 20 de 50
La instruccin BY se utiliza para partir los datos del dataset en diferentes grupos segn los
valores que toma la variable all mencionada. El procedimiento repite su anlisis para cada uno
de estos subgrupos. BY es una opcin imprescindible en el procedimiento SORT aunque no
tiene exactamente este sentido.
En los procedimientos estadsticos se puede incluir la instruccin WEIGHT, dnde se especifica
qu variable da el peso de los datos, es decir, qu variable contiene las frecuencias (datos
ponderados).
La instruccin OUTPUT OUT=dataset_salida es una opcin muy til que permite guardar los
estadsticos calculados por el procedimiento en un dataset que se llama dataset_salida. En
algunos casos, tambin se pueden almacenar los datos que ha generado el procedimiento para
calcular los estadsticos, pero este paso se menciona dentro de las instrucciones especficas
del procedimiento despus del smbolo ' / ' por ejemplo.
Las instrucciones WEIGHT y OUTPUT no sirven para los procedimientos no estadsticos.
Para cualquier duda en la sintaxis de un procedimiento, consultar el HELP. All se describen
todas las instrucciones que son imprescindibles y todas las opciones que permite el
procedimiento.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 21 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 22 de 50
5.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 23 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 24 de 50
La instruccin CLASS indica cules de las variables de la tabla clasifican los datos.
La instruccin VAR indica el resto de variables a utilizar.
En la instruccin TABLE se indica la expresin de las variables que generan la tabla,
introduciendo las variables representadas cmo filas y las representadas en columnas
separadas por una coma. Estas expresiones pueden estar formadas por variables CLASS,
variables VAR, la palabra ALL (que se refiere al total) y estadsticos, poniendo el smbolo ' * '
para combinar y parntesis para encadenar.
Algunos de los estadsticos disponibles son:
MAX
MIN
MEAN
N
PCTN
SUM
PCTSUM
RANGE
STD
STDERR
VAR
6.
Valor mximo.
Valor mnimo.
Media.
Nmero de observaciones.
Porcentaje de observaciones.
Suma de las observaciones.
Porcentaje de la suma de las observaciones.
Rango.
Desviacin estndar.
Error estndar.
Varianza.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 25 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 26 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 27 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 28 de 50
7.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 29 de 50
Ventana OUTPUT con el resultado del PROC PRINT del dataset de salida
F_TRATAM.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 30 de 50
Ventana OUTPUT con parte del resultado del PROC PRINT del dataset de
salida X_TRATAM.
En la instruccin TABLES es dnde se hace referencia a las variables con las cuales se trabaja
(es posible solicitar diversas tablas al mismo tiempo). Si se desea una tabla de contingencia es
imprescindible escribir el smbolo ' * ' entre las variables a representar. En este ltimo caso, es
til solicitar tambin el clculo del estadstico Chi-Cuadrado escribiendo ' / CHISQ ' al final de
la instruccin TABLES.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 31 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 32 de 50
7.3.
7.3.1. CORRELACIN.
Para estudiar la relacin entre dos o diversas variables, es prctico comenzar por analizar la
correlacin entre stas utilizando el procedimiento CORR.
Este procedimiento proporciona algunos estadsticos bsicos de cada una de las variables
estudiadas: el nmero de observaciones, la media, la desviacin estndar, la suma de todos
los valores, el valor mnimo y el valor mximo.
Por otra parte, tambin se muestra una tabla con la correlacin entre las variables
especificadas en la instruccin VAR. Esta tabla contiene la correlacin de Pearson (por defecto
stos son los estadsticos calculados) y la significacin asociada a la hiptesis nula que el
coeficiente de correlacin es cero para cada posible combinacin de las variables
especificadas.
Con la instruccin WITH, slo se calcula la correlacin de las variables especificadas en VAR
con las variables especificadas en WITH.
Con este procedimiento tambin existe la opcin de calcular estadsticos no paramtricos para
los coeficientes de correlacin, utilizando SPEARMAN despus de la palabra CORR (tambin
hay otros estadsticos no paramtricos disponibles).
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 33 de 50
Pg. 34 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 35 de 50
Fuente de variacin.
Grados de libertad asociados a la fuente.
Suma de cuadrados de cada trmino.
Suma de cuadrados dividido por los grados de libertad.
Valor F para testar la hiptesis nula que todos los parmetros son cero
excepto INTERCEPT (la constante).
Significacin del test.
Raz de error medio cuadrtico.
Media de la variable dependiente.
Coeficiente de variacin.
2
Valor de R .
2
Valor de R ajustado a los grados de libertad.
La segunda seccin est dedicada a los estimadores de los parmetros. La informacin que
proporciona es la siguiente:
Variable
DF
Parameter estimate
Standard Error
T for H0
Prob > | T |
El procedimiento REG tambin permite obtener representaciones de los datos en una grfica
con la instruccin PLOT.
PROC REG DATA=PESO.FRUTA;
MODEL ZUMO=PESO;
PLOT ZUMO * PESO;
RUN;
Para solicitar una grfica se escribe las dos variables intercaladas por el smbolo ' * ', teniendo
en cuenta que la variable de la izquierda es la variable del eje vertical y que la de la derecha es
la variable del eje horizontal.
Tambin es posible escoger el carcter con el que se representan los datos escribiendo un
smbolo ' = ' seguido del smbolo deseado entre comillas. Si no se especifica ningn smbolo,
aparecen los nmeros correspondientes a la frecuencia con que es repite aquel punto de la
grfica.
PROC REG DATA=PESO.FRUTA;
MODEL ZUMO=PESO;
PLOT ZUMO * PESO P. * PESO = '*' / OVERLAY;
RUN;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 36 de 50
Ventana de grficos con el resultado del grfico creado por PROC REG.
Es posible representar diversas grficas al mismo tiempo, ponindolas en la instruccin PLOT
separadas por espacios. Tambin es posible visualizar estadsticos si son escritos seguidos de
un punto (cmo si se trataran de otras variables).
Algunos de los estadsticos representables son:
P
R
STUDENT
U95
L95
Valores predichos.
Residuos.
Residuos estudentizados.
Cota superior para el intervalo de confianza del 95% para predicciones
Individuales.
Cota inferior para el intervalo de confianza del 95% para predicciones
Individuales.
La opcin ' / OVERLAY ' se emplea para visualizar diversas grficas superpuestas. Cuando se
sobreponen los valores de las dos grficas, aparece el smbolo ' ? '.
PROC REG DATA=PESO.FRUTA OUTEST=T_PESO;
MODEL ZUMO=PESO;
OUTPUT OUT=O_PESO P=PREDI;
RUN;
PROC PRINT DATA=T_PESO;
RUN;
PROC PRINT DATA=O_PESO;
RUN;
TITLE;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 37 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 38 de 50
8.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 39 de 50
Pg. 40 de 50
Para representar diversas grficas superpuestas, se indica mediante la opcin '/OVERLAY '.
PROC GPLOT DATA=O_PESO;
PLOT ZUMO*PESO PREDI*PESO /OVERLAY;
SYMBOL1 INTERPOL=JOIN VALUE=DIAMOND COLOR=GREEN;
SYMBOL2 INTERPOL=JOIN VALUE=STAR COLOR=BLUE;
RUN;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 41 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 42 de 50
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 43 de 50
9.
ANEXO
SPSS lee o guarda los ficheros separados por tabuladores slo en la extensin
".dat".
Al abrir o guardar un fichero, SPSS pregunta si en el primer registro se encuentran
los nombres de las variables.
Al abrir o guardar un fichero, MS Excel no pregunta si en el primer registro hay los
nombres, simplemente lee o almacena el fichero entero.
Aunque utilizando SAS existe la posibilidad de leer o exportar datos con los
nombres de las variables en la primera lnea utilizando el paso DATA, los pasos a
seguir no son elementales. Por ejemplo, al leer datos externos es preferible
declarar los nombres en la instruccin INPUT en lugar de leerlos directamente del
fichero de datos.
La versin v.8 de SAS tiene incorporado un desplegable que permite importar o
exportar datos en formato de texto, incluido el "separado para tabuladores", con la
posibilidad de incluir los nombres de las variables en el primer registro del fichero.
El desplegable utiliza unos procedimientos llamados PROC IMPORT y PROC
EXPORT.
Tambin existen otras formas de importar datos al SAS menos costosas, pero es
imprescindible poseer mdulos complementarios especiales para la importacin/exportacin de
datos.
El siguiente cdigo tambin lee ficheros de SPSS si estos estn guardados previamente en la
extensin ".por" correspondiente al formato llamado portable:
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 44 de 50
*Datos.dat;
DATA A;
FILE "A:\DATOS.DAT";
INPUT NUM_PAC 1-2 TRATAM 3 INIC $ 4-6 SEXO 7 EDAD 8-9;
PUT NUM_PAC 1-2 TRATAM 3 INIC $ 4-6 SEXO 7 EDAD 8-9;
CARDS;
51ABC143
62FRE173
71SAD122
82GRC053
91PPC035
102LBB036
111JVM044
122RAR015
131XBG175
142MSD164
;
RUN;
*Datos2.dat;
DATA A;
FILE "A:\DATOS2.DAT" DLM="09"X;
INPUT NUM_PAC 1-2 TRATAM 4;
PUT NUM_PAC TRATAM;
CARDS;
5 1
6 2
7 1
8 2
9 1
10 2
11 1
12 2
13 1
14 2
;
RUN;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 45 de 50
*Resul.sd2;
LIBNAME FIEBRE "A:\";
DATA FIEBRE.RESUL;
INPUT NUM_PAC FIEBRE0 FIEBRE1;
CARDS;
1 38 37
2 39 37
3 39 38
4 40 37
5 41 42
6 40 36
7 38 38
8 39 36
9 40 42
10 41 37
11 40 40
12 42 37
13 37 38
14 39 38
;
RUN;
*Fruta.sd2;
LIBNAME PESO "A:\";
DATA PESO.FRUTA;
INPUT PESO ZUMO;
CARDS;
0.61 0.25
0.52 0.23
0.46 0.26
0.63 0.32
0.56 0.22
0.61 0.36
0.6 0.35
0.54 0.31
0.39 0.3
0.28 0.1
0.42 0.21
0.41 0.15
0.47 0.2
0.54 0.36
;
RUN;
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 46 de 50
10.
10.1. Introduccin
La programacin Macro es una herramienta muy til para estandarizar, extender y la
progamacin clsica en cdigo SAS. Entre otras virtudes, permite reducir en gran medida la
cantidad de cdigo necesario para las tareas ms frecuentes.
En resumen, se podra decir que la programacin Macro permite asignar a un conjunto de
caracteres o de sentencias de cdigo un nombre clave. Esta palabra clave ser sustituida por
el valor asignado al ser ejecutado y compilado el correspondiente cdigo.
La ventana de programacin para crear Macros, es la ventana habitual de sintaxis.
La programacin Macro tiene dos componentes principales:
-
10.1.1.
Variables Macro
Ejemplo:
%let city = Barcelona;
Titile Ciudad: &city;
->
10.1.2.
Ejemplo:
%macro b;
a
%mend b;
proc print data=%b;
run;
->
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 47 de 50
10.1.3.
Ejemplo:
%macro pl;
proc plot;
plot y*x;
run;
%mend;
%pl;
10.1.4.
->
proc plot;
plot y*x;
run;
%macro pl (data=,yvar=,xvar=);
proc plot data = &data ;
plot &yvar * &xvar ;
run;
%mend;
%pl (data=a, yvar=y, xvar=x);
->
Llamada a la Macro
%macro pl (data=,yvar=,xvar=);
%pl (data=a, yvar=y, xvar=x);
%macro pl (data,yvar,xvar);
%pl (a,y,x);
%macro pl (data=a,yvar=y,xvar=x);
%pl (xvar=x);
(en este ltimo caso se definen valores por defecto).
10.1.5.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 48 de 50
10.1.6.
Ejemplo:
%macro quehago(info=);
%if &info=a %then %do;
proc print;
run;
%else %if &info=b %then %do;
proc print noobs label;
run;
%else %put NO SE QUE HACER &INFO NO ME SIRVE;
%mend;
La instruccin %IF %THEN ; %ELSE ; es la correspondiente instruccin condicional
del cdigo Macro. Cuando las transformaciones a realizar son varias, stas deben de escribirse
entre un %DO; y un %END;
Para optimizar el cdigo anterior se podra utilizar la funcin %UPCASE y as evitar posibles
confusiones entre maysculas y minsculas.
La instruccin %PUT escribe un literal o el valor de una variable Macro en la ventana LOG.
10.1.7.
Ejemplo:
%macro a (num);
%do i=1 %to #
%put &num Me portar bin en clase;
%end;
%mend;
%macro a (num,data);
%do i=1 %to #
proc print data=&data#
run;
%end;
%mend;
%a(2,b)
->
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 49 de 50
10.2.1.
Fecha
Da
El ltimo dataset analizado
Resultado del paso data.
10.2.2.
Tales variables deben tener un nombre que empiece por una letra o _ aunque no es
recomendable que empiecen por SYS, AF, DMS, SQL debido a que son nombres utilizados
frecuentemente por el sistema.
Se puede escribir %put _all_; para ver todas las variables Macro creadas por el usuario.
10.2.3.
La forma ms simple de asignar un valor a una variable Macro es mediante la instruccin %let.
Posibles maneras de crear variables Macro:
%let
%do iterativo
%global
%local
%input
%macro
Symput
Into
%window
Asignacin simple
El contador
Definen variables Macros que seran utilizadas en varias Macros y
cdigo SAS
Definen variables Macro que seran utilizadas slo en una Macro
Permite asignar valores a variables Macros dentro del cdigo Macro
Dentro de una macro
Dentro de un paso DATA
Dentro del Proc SQL
Dentro de una ventana Macro
Pg. 50 de 50
10.2.4.
Ejemplos
%let name=Juan;
%let name1=Pepe;
%let i=1;
%let Juan1=Mara
&name1
&name&i
&&name&i
&name.1
hola&name
&name.&name
&name..&name
&&&name&i
10.2.5.
-> Pepe
-> Juan1
-> Pepe
-> Juan1
-> holaJuan
-> JuanJuan
-> Juan.Juan
-> Mara
%put
Options symbolgen;
Options Mprint
Escribe en el Log.
Escribe en el Log todas las asignaciones que vamos realizando.
Escribe el cdigo generado por las Macros en el Log.
_____________________________________________________________________________________
Servei d'Estadstica Universitat Autnoma de Barcelona
Pg. 51 de 50