You are on page 1of 115

ISBN 978-607-425-104-3

INSTITUTO NACIONAL DE INVESTIGACIONES FORESTALES, AGRCOLAS Y PECUARIAS


CENTRO DE INVESTIGACIN REGIONAL GOLFO CENTRO
CAMPO EXPERIMENTAL LA POSTA

IN

O
R
T

DA
DE 
O
J
E AS
N
MA O S
AL AND
N IZ

I IL
C
C UT
U
D

S
O
T

Dra. Teresa Beatriz Garca Peniche


Dr. Isaas Lpez Guerrero

DIRECTORIO INSTITUCIONAL
SECRETARA DE AGRICULTURA, GANADERA, DESARROLLO RURAL, PESCA Y
ALIMENTACIN
Ing. Alberto Crdenas Jimnez
Secretario
Ing. Francisco Lpez Tostado
Subsecretario de Agricultura
Ing. Antonio Ruiz Garca
Subsecretario de Desarrollo Rural
Lic. Jeffrey Max Jones Jones
Subsecretario de Fomento a los Agronegocios
INSTITUTO NACIONAL DE INVESTIGACIONES FORESTALES, AGRCOLAS Y
PECUARIAS
Dr. Pedro Brajcich Gallegos
Director General
Dr. Enrique Astengo Lpez
Coordinador de Planeacin y Desarrollo
Dr. Salvador Fernndez Rivera
Coordinador de Investigacin, Innovacin y Vinculacin
Lic. Marcial A. Garca Morteo
Coordinador de Administracin y Sistemas
CENTRO DE INVESTIGACIN REGIONAL GOLFO CENTRO
Dr. Vicente E. Vega Murillo
Director Regional
Dr. Sergio Uribe Gmez
Director de Investigacin
Dr. Francisco Javier Ibarra Prez
Director de Planeacin y Desarrollo
C.P. Velia Martnez Castillo
Directora de Administracin
Dr. Ral Ros Snchez
Director de Coordinacin y Vinculacin en Puebla
M.C. Oscar G. Castaeda Martnez
Director de Coordinacin y Vinculacin en Tabasco
Introduccin al manejo de datos, utilizando SAS

CONTENIDO
Pg.
CAPTULO 1
Por qu SAS? .............................................................................................1

CAPTULO 2
Las ventanas de SAS ...................................................................................3

CAPTULO 3
Archivos permanentes en SAS ................................................................. 11

CAPTULO 4
Archivos temporales en SAS .................................................................... 15
Para hacer comentarios.................................................................................. 16
Enhanced Editor ............................................................................................. 16
Creacin de una base de datos en SAS ...................................................... 17
Mensajes del Log ......................................................................................... 18
Cambiando de archivos temporales a permanentes....................................... 20
Ver la base de datos ....................................................................................... 21
Guardar los cdigos........................................................................................ 22
Tamao de las bases de datos guardadas en SAS ..................................... 24
Acceso a los cdigos guardados ....................................................................24

CAPTULO 5
Los programas de SAS.............................................................................. 25
Acerca de los comentarios................................................................... 25
Recomendacin ................................................................................... 27
Procedimientos y rdenes (o instrucciones) de SAS......................... 28
Manejo de los resultados ..................................................................... 28

CAPTULO 6
La base de datos........................................................................................... 31
1. Importar bases de datos de Excel ................................................. 32
2. Exportar bases de datos de SAS hacia Excel ............................ 39
3. Otras formar de importar o exportar (sin Wizard)............................. 43

Introduccin al manejo de datos, utilizando SAS

CAPTULO 7
Ms acerca de lectura de datos por SAS ................................................. 47
1. Creando un archivo de datos con la orden DATA............................ 47
2. Leyendo datos con sealador de columna ...................................... 49
3. Leyendo datos escritos de corrido ................................................... 50
4. Leyendo datos de archivos ASCII.................................................... 51
Infile........................................................................................... 52
Filename ................................................................................... 52
5. Para saltar informacin que SAS no debe leer.............................. 53

CAPTULO 8.
Algunos procedimientos de SAS.............................................................. 55
1. Para ordenar los datos................................................................................ 55
Proc sort .............................................................................................. 55
Para eliminar datos repetidos .............................................................. 56
2. Para verificar la calidad de los datos y/o resumir informacin
de los datos crudos..................................................................................... 56
Proc freq .............................................................................................. 56
Proc means.......................................................................................... 58
3. Para manejar la base de datos ................................................................... 61
Drop ..................................................................................................... 61
Keep .................................................................................................... 62
Rename ............................................................................................... 62
4. Para crear variables por medio de operaciones matemticas .................... 63
5. Para unir dos o ms bases de datos .......................................................... 65
Set ....................................................................................................... 65
Merge................................................................................................... 66
Otro uso de Merge ............................................................................... 68

CAPTULO 9
Ms de manejo de datos en SAS .............................................................. 71
Los condicionantes ......................................................................................... 71
Ifthen ................................................................................................ 71
Else ifthen......................................................................................... 73
Ifand/or.then.................................................................................. 74
Algunas funciones de SAS........................................................................... 74
Fechas ................................................................................................. 74
Mes, ao .............................................................................................. 75
Mximos, mnimos y sumatorias.......................................................... 76
Sumatoria ............................................................................................ 76
Introduccin al manejo de datos, utilizando SAS

Mximos .............................................................................................. 76
Mnimos ............................................................................................... 77
Recomendaciones finales............................................................................... 77

CAPTULO 10.
Algunos cdigos de estadstica.................................................................. 79
Proc glm ......................................................................................................... 80
Proc mixed...................................................................................................... 84
Proc univariate ............................................................................................... 84
Prog reg.......................................................................................................... 89
Para seleccionar el modelo de regresin mltiple ms adecuado.................. 92
Proc corr ......................................................................................................... 93
Proc glm para anlisis de varianza multivariado............................................. 94
Otras ordenes bsicas.................................................................................... 95
Where en proc means ....................................................................... 95
Proc boxplot ......................................................................................... 95
Prueba de Chi-cuadrada en proc freq.................................................. 95

CAPTULO 11
Algunos cdigos de diseos experimentales............................................ 97
1. Diseo completamente al azar ................................................................... 97
2. Comparacin de tratamientos..................................................................... 98
3. Comparaciones mltiples ........................................................................... 99
4. Diseo de bloques completos al azar ......................................................... 99
5. Diseo de bloques al azar generalizados ................................................. 100
6. Diseo de bloques incompletos, incluyendo el diseo de bloques
completos al azar con observaciones perdidas ........................................ 100
7. Diseo de cuadro latino ............................................................................ 101
8. Diseo de cuadro latino con repeticiones ................................................. 101
9. Diseo de parcelas divididas (ejemplos) .................................................. 101
APNDICE ................................................................................................... 104
LITERATURA CITADA ................................................................................ 105
RECONOCIMIENTO
CRDITOS EDITORIALES
DIRECTORIO INSTITUCIONAL

Introduccin al manejo de datos, utilizando SAS

NDICE DE FIGURAS
Pg.
Figura 1

Figura 2

Ambiente de trabajo de SAS como aparece al abrir el


programa (despus de oprimir el icono con el logotipo de
SAS).

Men que se abre al oprimir la opcin View del men


principal.

Figura 3

Ventana que se abre al oprimir el icono de creacin de


archivero nuevo (el dibujo del archivero amarillo con una
11
estrella azul).

Figura 4

Ejemplo de cdigo con datos escritos directamente (o


copiados de algn editor de textos) en el Editor de SAS.
18

Figura 5

Contenido del Log despus de ejecutar el cdigo del


ejemplo.
19

Figura 6

Archivo temporal que se encuentra dentro del archivero


Work
21

Figura 7

Los datos abiertos del archivo Ejemplo que se encuentra


dentro del archivero WORK.
22

Figura 8

Men que se abre para guardar un cdigo antes de cerrar la


sesin de SAS.
23

Figura 9

Pantalla para dar nombre al cdigo de SAS que se desee


guardar.
23

Figura 10

Archivo de datos de Excel editado para ser exportado a


SAS.
33

Figura 11

Utilizacin del Wizard para importar datos hacia SAS.

Figura 12

Seleccin del programa de donde se van a importar datos a


SAS
35

Figura 13

Bsqueda de la localizacin del archivo a importar.

36

Figura 14

Seleccin del archivo a importar.

36

Figura 15

Aceptar el archivo seleccionado.

37

Figura 16

Seleccin del archivero donde se va a guardar el archivo a


importar.
37

Figura 17

Mensaje que aparece en el Log despus de una importacin


exitosa.
38

Figura 18

Verificando que los datos se hayan importado correctamente.

35

39

Introduccin al manejo de datos, utilizando SAS

Figura 19

Seleccin de la opcin de exportar en el Wizard.

40

Figura 20

Utilizacin del Wizard para exportar datos de SAS.

41

Figura 21

Buscando el lugar donde se van a guardar los datos a


exportar.
42

Figura 22

Dndole nombre al archivo a exportar.

42

Figura 23

Ejemplo de como de ven los datos de un archivo.

45

Figura 24

Ejemplo de la orden merge.

68

NDICE DE CUADROS
Pg.
Cuadro 1

Algunas opciones de Means con el procedimiento glm.

Cuadro 2

Algunas opciones a usar con el procedimiento Univariate.

Cuadro 3

Algunas opciones de la instruccin Plot en el procedimiento


Reg.
90

Cuadro 4

Algunas opciones que se utilizan con el procedimiento Corr.

89

94

Introduccin al manejo de datos, utilizando SAS

CAPTULO 1

Por qu SAS?

En sus inicios, el programa SAS llevaba ese nombre por ser las siglas de
Statistical Analysis System (Sistema de Anlisis Estadsticos). Sin embargo,
actualmente SAS incluye toda una familia de programas, por ejemplo, para anlisis
financieros y para manejo de datos sociales (entre muchos otros), y SAS/STAT es
slo uno ms entre sus mltiples funciones, de manera que el nombre SAS es
ahora slo un nombre, sin que tenga un significado especfico. El presente manual se
refiere a algunas funciones bsicas de SAS/STAT, con mayor probabilidad de
utilizarse en investigacin en las ciencias agropecuarias.

SAS es el paquete estadstico de ms prestigio, y se encuentra entre los ms


poderosos instrumentos de manejo y anlisis de datos en el mundo. El programa
SAS es distribuido en ms de 120 pases para aproximadamente 3.5 millones de
usuarios. Este programa no puede comprarse, slo se adquieren licencias de uso.
Sin embargo, una vez que se adquiere una licencia, se pagan cuotas anuales que
dan derecho a que automticamente se tenga acceso a las novedades, adiciones o
mejoras en el programa. Estas cuotas sirven, en gran parte, para financiar la
investigacin que mejora los programas. Los usuarios pueden opinar en qu mbito
requieren o preferiran modificaciones a los programas, si contactan ballot@sas.com.
Tambin es posible enviar sugerencias al correo suggest@sas.com. El Instituto SAS
tiene su sede en Carolina del Norte, Estados Unidos. Su pgina, www.sas.com debe
consultarse para adquirir licencias.

El presente manual est dirigido a quienes deseen iniciarse en el uso de SAS,


especialmente para quienes trabajan en ciencia biolgicas y agropecuarias, y
manejen datos de investigacin. No se incluyen temas intermedios ni avanzados,

Introduccin al manejo de datos, utilizando SAS

sino se trata de que los lectores se familiaricen con el ambiente Windows de SAS, y
de que tengan a la mano un listado de cdigos bsicos y sencillos en lenguaje SAS
para manejar cualquier cantidad de datos, ya sea para anlisis directo en SAS, o
para uso posterior de algn otro paquete de anlisis especializado, por ejemplo, el
ASREML (programa que se utiliza en anlisis de gentica cuantitativa). Los
programas especializados suelen estar escritos en lenguaje Fortran, C, o C++. Sin
embargo, tpicamente, la capacidad de combinar o crear variables a partir de otras
variables, o la capacidad de editar los datos, es decir, el manejo de los datos, es muy
limitado en estos programas. Por esta razn, es conveniente preparar los datos
primero usando un programa ms amigable, como SAS.

Con frecuencia, a las rdenes que se escriben para que SAS ejecute un
procedimiento, se les llama programas o cdigos (la palabra que se utilizar con
ms frecuencia ser cdigo). Hay varias maneras de obtener un mismo resultado
usando SAS, pero en general, se mencionar una sola forma, para que sirva ms
como una gua que como una fuente de confusin.

Se incluyen algunos cdigos de procedimientos estadsticos bsicos. Su buen uso


tiene como prerrequisito tener las bases suficientes de estadstica para cada caso, o
consultar a alguien versado en el tema.

Esta obra dista mucho de ser un manual completo de SAS. Existen literalmente
cientos de libros, y an ms sitios en Internet dedicados al uso de este poderoso
programa. Sin embargo, esperamos que el contenido del escrito sea de utilidad a
todos los lectores.

Introduccin al manejo de datos, utilizando SAS

CAPTULO 2

Las ventanas de SAS

Una vez adquirida la licencia, usted tendr, ya sea un enlace para bajar el programa,
o un nmero variable de CDs que contienen el programa de SAS, dependiendo de
la versin, y del tipo de licencia que haya adquirido. La ms bsica, generalmente, es
suficiente para trabajar en todo lo relacionado con la investigacin en ciencias
biolgicas, agropecuarias y forestales. Uno de los CDs vendr marcado como el
apropiado para iniciar la instalacin. Slo hay que introducirlo en la PC y seguir los
pasos que se vayan indicando.

El SAS es un programa grande que requiere al menos de Windows 98, con mnimo
de 10 GB de capacidad en disco duro y RAM de 512, de manera que en cualquier
computadora actualmente puede instalarse el programa SAS. Se debe tomar en
cuenta que la instalacin puede tardar varios minutos. Una de las opciones de
instalacin es el idioma en que se desea trabajar en SAS. Sin embargo, sin
importar que idioma se elija, todas las instrucciones que se escriban para SAS y la
mayora de la informacin que se obtiene de la ventana del Log deben y van a estar
en ingls. Por lo anterior, y tambin para traducir ciertas opciones, el contenido de
esta obra har referencia a la versin en ingls del programa.

Una vez instalado el SAS, en su computadora aparece un icono con el logotipo de


la versin de SAS que se haya instalado, ya sea en el contenido de la
computadora, o en el escritorio de la pantalla. Este icono sirve como atajo (shortcut)
para inicializar el programa. En algunas versiones, basta un clic en el shortcut
para que el programa abra, y en otras versiones, se necesita el doble clic. En caso
de que se abran dos ventanas, cada una con el programa de SAS, se puede
trabajar con los dos programas al mismo tiempo, pero esto puede ocasionar que la

Introduccin al manejo de datos, utilizando SAS

computadora se bloquee, y se pierdan ambos trabajos. Adems, a menos que se


est trabajando con varias decenas de millones de datos, o que se estn realizando
miles de iteraciones (repeticiones de un procedimiento), el SAS es un programa
muy rpido, y se perdera ms tiempo maximizando y minimizando una ventana u
otra de SAS, que utilizando una sola, por lo cual es preferible cerrar la ventana que
no se vaya a utilizar.

Al abrir SAS, se pueden ver varias ventanas y un men (Figura 1). Las ventanas
ms importantes son la del contenido, la del Editor (o Enhanced Editor), la del
Log, y la del Output; esta ltima, detrs de las dos anteriores. En algunas
versiones, al abrir SAS aparece una ventana que ofrece tutoras en el uso del
programa, en diversos niveles de complejidad a escoger. El usuario puede decidir
abrir la ventana y aprovechar estas lecciones o cerrar la ventana e iniciar
directamente con el trabajo en SAS. El ambiente de SAS, es decir, todo el
conjunto de ventanas, puede encontrarse ya maximizado, o estar minimizado, al
momento de iniciar la sesin. En la esquina extremo derecha se encuentran los
smbolos para cerrar, minimizar y para maximizar el programa. Si se oprime el de
cerrar, el programa pregunta: Are you sure you want to end the SAS session?
(Est usted seguro de que quiere cerrar la sesin de SAS?). Si se oprime Yes
(s), entonces, le preguntar, en ingls, si quiere guardar los cambios, y despus de
guardarlos, o de que se le indique que no se desea guardar nada, slo entonces, se
cierra el programa.

Las ventanas son:


a) La ventana del Explorer que se encuentra, al abrir SAS, a la izquierda, en
forma vertical, e incluye el Contenido del Ambiente SAS, el cual, a su vez,
contiene Libraries (la biblioteca), que es en donde se guardan los archiveros
generados por y para SAS. En las versiones ms avanzadas, el Contenido del
Ambiente SAS tambin incluye: File shortcuts, Favorite folders, y Mi PC, que es
de donde pueden provenir bases de datos que se importen hacia SAS para
trabajar con ellos.
Introduccin al manejo de datos, utilizando SAS

Dentro de Libraries se encuentra, por default, el archivero llamado WORK


(trabajo). Este archivero no debe borrase, porque es en donde se guardan en
forma automtica los archivos de trabajo que no son permanentes. Es decir, una
vez que se cierra la sesin de SAS, todos los archivos que hayan sido
guardados en WORK se borrarn.

Figura 1. Ambiente de trabajo de SAS tal como aparece al abrir el programa (despus
de oprimir el icono con el logotipo de SAS). La ventana de Log es en donde se
encuentran las letras azules. La ventana del Editor se encuentra debajo de la del
Log, y la ventana del Output est detrs de las dos anteriores.

Otro archivero ya incluido se llama SASUSER (usuario de SAS) y puede


usarse para guardar archivos permanentes, sin que el usuario tenga que crear un
archivero nuevo (Ver Captulo 3, acerca de creacin de archiveros).

Introduccin al manejo de datos, utilizando SAS

El usuario tambin puede crear sus propios archiveros, utilizando los nombres
que desee. En libraries aparecern todos los archiveros que el usuario haya
creado para trabajar en SAS, adems de SASUSER y WORK.
b) La ventana del Log (ver Figura 1), que se encuentra arriba al abrir SAS, tiene
informacin del copyright, de a quien pertenece la licencia de ese programa en
particular, y detalles del uso de los recursos de la computadora en el programa
SAS.
Una vez trabajando, en Log van a aparecer los reportes del resultado del
programa o cdigo, incluyendo una copia del cdigo usado, el nmero de
observaciones ledas, los errores, si los hubiese, algunas veces con sus
correspondientes sugerencias de correccin, y el tiempo utilizado en la ejecucin
del programa. En esta ventana tambin aparece la advertencia cuando la licencia
de SAS est a punto de vencerse, y alerta de que despus de la expiracin, no se
podr utilizar el programa.

En resumen, el Log contiene: la versin de SAS en uso, a quien pertenece la


licencia, la plataforma de ejecucin, el cdigo usado, con cada lnea numerada, el
nombre del archivo ledo y su ubicacin. Si el programa no corri (no se ejecut),
aparecen los errores o advertencias (con algunas advertencias el programa corre
de todas maneras), y sugerencias para corregir el cdigo. Si el cdigo corre,
aparecern el nmero de observaciones ledas y el nombre del archivo creado.
Las letras son azules cuando todo corre normalmente, rojas, si el programa no se
ejecut por errores graves del cdigo, y de otro color, si hubo algn problema que
el programa super solo.

c) La ventana del Editor (es la ventana de abajo), es donde se escriben los cdigos
y programas o se dan las instrucciones que se requiere sean ejecutadas. En las
ltimas versiones de SAS , que es a las que se refiere esta obra, el que se abre
por default es el Enhanced Editor, que es una versin mejorada del Editor. Es
muy til porque las instrucciones o cdigos que se escriben van en colores

Introduccin al manejo de datos, utilizando SAS

diferentes, segn sean palabras exclusivas de SAS (por ejemplo DATA o


PROC), o las palabras con que se identifican las variables o los nombres de
archivo. Tambin vienen en diferentes colores los nmeros, y las palabras de uso
exclusivo de SAS que fueron mal escritas.

Puede haber ms de una ventana del Editor abierta, cada una conteniendo
diferentes cdigos. Para hacer que un cdigo especfico se ejecute, primero de
marca o sombrea el cdigo utilizando el botn izquierdo del ratn, y luego
oprimiendo el icono de orden de correr (el icono de Run, como veremos). Si por
alguna razn, se cerrase(n) la(s) ventana(s) del Editor (o del Enhanced Editor),
y se deseara reabrirla(s), hay que hacer clic en View (una opcin en el men), y
seleccionar Enhanced Editor.

d) La ventana del Output se encuentra por default detrs de las de Log y del
Editor mientras no haya resultados que mostrar. Cuando se corre un programa
que genere resultados al Output, este se coloca por delante del Log y del
Editor automticamente. En esta ventana aparecen los resultados que se pueden
imprimir. Esto no significa que de esta ventana sea posible imprimir
directamente, sino que son resultados que aparecen, es decir, son impresos en
forma virtual. Hay muchos resultados que no necesariamente aparecen en el
Output, aunque muchos de ellos pueden solicitarse mediante un cdigo. La
manera que se sugiere aqu para imprimir los resultados a papel, es copiar el
contenido del Output, pegarlo en Word, efectuar las ediciones necesarias; por
ejemplo, cambiar color y tipo de letra, o cualquier otra edicin que se desee, y
finalmente, imprimir.

En ambiente Windows, las ventanas horizontales (es decir, todas, excepto la del
ambiente de SAS) pueden arrastrarse y moverse con el Mouse, y todas las
ventanas pueden abrirse o cerrarse, pero antes de cerrar la ltima ventana de
SAS, el programa pregunta si quieres cerrar la sesin. Al menos una ventana
debe permanecer abierta para continuar con el programa SAS en ejecucin.

Introduccin al manejo de datos, utilizando SAS

Tambin existe una ventana de Results (Resultados) debajo de la ventana del


Explorer, minimizada en el momento de abrir SAS. Esta ventana sirve como
una tabla de contenido de los resultados que vayan saliendo en el Output. Si se
oprime alguno de los resultados, esa porcin aparece visible en el Output.

Del men principal, que es una lista de ocho palabras (File, Edit, View, Tools,
Run, Solutions, Window, Help) que se encuentra horizontalmente al extremo
izquierdo de la pantalla de SAS, quiero resaltar el uso de View. Si se oprime
View, se abre el men con el cual se pueden acceder todas las ventanas de
SAS, como se observa en la Figura 2, y si se selecciona Contents only, aparece
el contenido de Libraries, los archiveros.

Figura 2. Men que se abre al oprimir la opcin View del men principal.

Introduccin al manejo de datos, utilizando SAS

Debajo del men hay una ventana para escribir instrucciones y junto a sta, dibujos
de enlace; para elegir las instrucciones se oprime la tecla enter sobre ellos. Por lo
tanto, existen tres formas de dar rdenes a SAS: Por medio de mens
desplegables (File, Edit, View, Tools, etc), por medio de los dibujos (lo
recomendado aqu), y escribiendo instrucciones en la ventanita de comando (no
recomendable, pues es fcil equivocarse). Tambin se puede oprimir el botn
derecho del ratn y elegir entre alguna de las opciones que aparezcan.

Escribir instrucciones u oprimir los dibujos da los mismos resultados, por lo que se
recomienda utilizar los dibujos. Los dibujos del men son prcticamente iguales a los
de los programas de Microsoft Word Excel, etc. Incluyen, entre otros:
1. Documento nuevo
2. Abrir archivos
3. Guardar archivos
3. Imprimir
4. Copiar
5. Cortar
6. Pegar

Todos stos son muy tiles para guardar o modificar cdigos, pero no se van a
discutir aqu, pues es obvio su uso, como en el editor de textos Word.

Exclusivos de SAS son los comandos de ejecutar o correr programa (Run), crear
un archivo nuevo, ver la ventana del Explorer, y ayuda de SAS. El usuario deber
explorar poco a poco todas estas opciones. Slo algunas de ellas, las ms
esenciales, se tratarn aqu.

Introduccin al manejo de datos, utilizando SAS

Introduccin al manejo de datos, utilizando SAS

10

CAPTULO 3

Archivos permanentes en SAS

Para tener un lugar especfico donde guardar las bases de datos permanentes para
utilizarse en SAS, se utiliza el comando de creacin de archiveros, cuyo dibujo de
enlace es un archivero amarillo con una estrella azul arriba. Al oprimir este enlace, se
abre una ventana o pantalla como la que se muestra en la Figura 3.

Figura 3. Ventana que se abre al oprimir el icono de creacin de archivero nuevo (el
dibujo del archivero amarillo con una estrella azul).

Introduccin al manejo de datos, utilizando SAS

11

Antes de utilizar la opcin de crear un archivero nuevo es necesario tener


perfectamente localizado el lugar dentro de la PC donde se encuentre. Para este
propsito:
1.

Crear un Nuevo Flder o carpeta en algn lugar de la PC, del cual no se

mueva. Puede ser en el escritorio, en Mis documentos o en cualquier otro


lugar. Otra opcin es seleccionar un flder o carpeta ya existente, pero que
dentro del cual se desee guardar las bases de datos permanentes que se
tengan o que vayan generando con SAS.
2.

A este flder pngale un nombre sencillo, corto, de ocho menos dgitos.

Se pueden combinar letras y nmeros, e incluir guiones bajos, si se desea, pero


no se pueden utilizar otros smbolos ni guiones, y el nombre debe de empezar
con una letra o con un guin bajo (no con nmero). Se recomienda un nombre
corto hecho nicamente de letras.
3.

Cerrar el flder si estaba abierto, as como cualquier base de datos que

contenga.

Hecho lo anterior, se procede en la forma siguiente:


1.

Abrir SAS y oprimir el dibujo de creacin de archivero nuevo (el dibujo del

archivero amarillo, con su estrella azul), va a salir una pantalla como en la


Figura 3.
2.

En la primera ventanita Name (nombre), escribir el nombre del flder

recin creado o el flder designado para contener los datos para trabajar en
SAS.
3.

La segunda ventanita, dejar Default.

4.

Marcar el espacio en la ventanita Enable at startup (hacer disponible

desde el inicio).
5.

Debajo de Library information, en Path (camino), oprimir Browse

(examinar) y encontrar el camino para llegar al flder designado; por ejemplo,


Introduccin al manejo de datos, utilizando SAS

12

podra estar en: Mis documentos, y la carpeta llamarse Datos, al seguir el


enlace, automticamente se escribira: C:\Documents and Settings\Yo\Mis
documentos\Datos

Lo anterior tambin es posible escribirlo directamente. Una vez definido este


camino, SAS va a buscar la informacin en ese lugar nicamente; por eso, si
se mueve el flder de lugar, SAS no lo va a poder encontrar.
6.

No escribir nada en Options

7.

Oprimir Ok

8.

Verificar que dentro de Libraries (Dentro de la ventana vertical a la

izquierda, en SAS, ahora se encuentre un archivero llamado Datos. Si


Libraries no est abierto, oprimir View, y despus Contents only.

Si no se desea tener bases de datos (a veces tambin le llamaremos archivos)


permanentes en SAS, sino que se desea importar los datos de otro programa,
como Excel por ejemplo, o escribir los datos para analizarse, no es necesario crear
archiveros. SAS puede trabajar con datos temporales. Sin embargo, los archivos
guardados en SAS con frecuencia son mucho ms compactos que en hojas de
clculo o archivos de texto. Si el espacio fuese una limitante en memoria, guardar los
datos en SAS economiza espacio y es muy fcil de usar.

Introduccin al manejo de datos, utilizando SAS

13

Introduccin al manejo de datos, utilizando SAS

14

CAPTULO 4

Archivos temporales en SAS

En la ventana del Enhanced Editor (simplemente lo llamaremos Editor), se


escriben los cdigos de programa para trabajar con una base de datos que:
a) se encuentre en un archivero permanente de SAS;
b) se vaya a formar al escribir directamente los datos, o bien,
c) se encuentre fuera de los archiveros de SAS, es decir, en alguna carpeta
de la PC, en un CD, o en un dispositivo extrable, por ejemplo.

En este captulo vamos a ver como crear una base de datos, en este caso, temporal
(la opcin b de la lista anterior). Una ligera modificacin al cdigo, indicndole a
SAS donde guardar los datos (un archivero diferente de WORK), da la orden de
convertir la base de datos a permanente.

Los archiveros que se crean como se describi en el captulo anterior, sirven para
guardar las bases de datos en forma permanente (aunque tanto los archivos como
los archiveros se pueden borrar en el momento que se desee, con Delete). Sin
embargo, con frecuencia la base de datos es pequea y no se requiere guardarla en
SAS. Es posible que ya se encuentre en algn otro programa, en Excel, por
ejemplo, y que no se desee tener la informacin repetida, o que sea preciso
actualizar la informacin peridicamente, lo cual quiz resulte ms fcil hacer en
Excel que en SAS. En SAS no se puede modificar directamente la informacin
en las bases de datos; es decir, si en una celda se encuentra el nmero 3.001, por
ejemplo, y el nmero est mal, no se puede llegar a ese nmero en particular con el
cursor, ni mediante algn otro artificio, y modificarlo directamente. Se puede, sin

Introduccin al manejo de datos, utilizando SAS

15

embargo, modificar toda la columna y hacer operaciones o buscar el dato errneo,


siempre y cuando haya forma de determinar su posicin y el dato sea nico.

Si en el men (la lnea que contiene las palabras: File, Edit, View, Tools, Run, etc.)
se oprime View y despus se selecciona Contents only, aparece a la izquierda (si
no es que ya estaba ah mismo, pues por default al abrir SAS aparece esta ventana
vertical) el dibujo de un archivero amarillo (Libraries). Si se oprime este enlace
aparecen los archiveros que se tienen. SAS incluye dos archiveros: SASUSER y
WORK. Nos ocuparemos nicamente del archivero WORK. En WORK se
guardan todas las bases de datos a las cuales no se les haya indicado en que
archivero van. Mientras est en proceso la sesin de SAS , las bases de datos
estn disponibles y pueden ser vistas al abrir el archivero WORK (slo se da clic en
WORK, y despus en la base de datos que se desee ver).

Para hacer comentarios


Es muy til aadir comentarios de lo que estamos haciendo. La forma correcta de
hacerlo es escribir un cdigo y junto a l, debajo o antes de l, hacer un comentario.
Si se escribe:
/ comentario /

o comentario;

El comentario o cualquier otra cosa que se escriba entre los / / ; no va a ser


ledo por SAS. Incluso pueden escribirse cdigos a usar bajo condiciones diferentes
del anlisis actual, que no se van a leer si se ponen entre los / / o ;. Aqu siempre
se va a utilizar la forma comentario; para las notas o comentarios.

Enhanced Editor
Cuando empezamos a escribir el cdigo en el Enhanced Editor (que, como ya se
dijo, aqu llamaremos simplemente Editor) lo primero que notamos es que las letras
tienen colores: Los comandos de SAS, como DATA, INPUT, CARDS y RUN estn
en azul. De hecho, DATA y RUN, estn en azul obscuro, e INPUT y CARDS, en azul

Introduccin al manejo de datos, utilizando SAS

16

claro. Las palabras o datos que nosotros utilizamos, estn en negro. El comentario
(lo escrito dentro de ;) est en verde. Si aparece alguna palabra en rojo, significa
que hay algn problema y que el programa no va a correr.

Para este ejemplo se va a crear una base de datos. Se debe escribir todo lo que
sigue exactamente como aparece aqu, en la ventana del Editor. O se puede
escribir en Word y despus copiar a la ventana del Editor.

No importan lo espacios antes despus de cada comando, ni si se escribe todo


seguido o se pasa a la siguiente lnea. Sin embargo, se recomienda poner cada
frase en una lnea, para que el cdigo sea fcilmente legible.

Creacin de una base de datos en SAS


Ejemplo de cdigo para crear una base de datos escrita en SAS (Figura 4):
DATA ejemplo;
INPUT rana tam salto;
CARDS;
1

16

18

17

12

17

21

15

16

17

;
tamao 1= chico, tamao 2 = mediano, tamao 3 = grande;
Run;

Introduccin al manejo de datos, utilizando SAS

17

Para que el cdigo corra, hay que oprimir el icono de ejecutar programa (Run),
representado por el dibujo de la silueta de una persona corriendo.

Figura 4. Ejemplo de cdigo con datos escritos directamente (o copiados de algn


editor de textos) en el Editor de SAS.

Mensajes del Log


En este caso, se observa que aparece un mensaje en la ventana del Log, como
puede verse en la Figura 5 (la ventana del Log se hizo un poco ms grande
utilizando el ratn, para que se vea todo el contenido, para propsitos de este
ejemplo); el contenido del Log se reproduce a continuacin, para facilitar su lectura:
79 DATA ejemplo;
80 INPUT rana tam salto;
81
82 *tamao 1= chico, tamao 2 = mediano, tamao 3 = grande;

Introduccin al manejo de datos, utilizando SAS

18

83
84 CARDS;

NOTE: The data set WORK.EJEMPLO has 9 observations and 3 variables.


NOTE: DATA statement used (Total process time):
real time

0.00 seconds

cpu time

0.01 seconds

94 ;
95
96

*tamao 1= chico, tamao 2 = mediano, tamao 3 = grande;

97 Run;

Figura 5. Contenido del Log despus de ejecutar el cdigo del ejemplo.

Se observa que:
1)

las lneas estn numeradas, en este caso, la numeracin empieza del 79

porque haba instrucciones anteriores que fueron borradas;

Introduccin al manejo de datos, utilizando SAS

19

2)

el cdigo se repite, incluyendo el comentario, pero no los datos;

3)

las Notas, que es el reporte de la ejecucin del programa por parte de

SAS estn en azul buena noticia, porque si algo sale en rojo, significa que el
cdigo estaba mal escrito o que por alguna razn, no se pudo correr el
programa, o corri mal;
4)

se menciona una base de datos llamada work.ejemplo, dando detalles del

nmero de observaciones (hileras) y del nmero de variables (columnas); y


5)

se dan detalles del tiempo de ejecucin y a veces otros detalles tcnicos.

Cambiando de archivos temporales a permanentes


El nombre de la base de datos work.ejemplo, significa que en el archivero WORK,
existe una base de datos llamada ejemplo (Figura 6). Como se mencion antes,
todo el contenido del archivero WORK se borrar tan pronto termine la sesin de
SAS. A continuacin se indica la modificacin al cdigo para que la base de datos
se guarde como permanente: En lugar de slo poner el nombre de la base de datos
(ejemplo), le ponemos el nombre del archivero donde queremos que se
guardey que NO sea en WORK. Digamos que el archivero se llama Ranas, y
que lo creamos anteriormente, siguiendo los pasos del Captulo 3.

El cdigo se modifica para que quede as (slo se muestra el principio):


DATA ranas.ejemplo;
INPUT rana tam salto;
CARDS;
1

16

18

etc.

Para ver la base de datos o archivo (Figura 6), primero se abre la ventana de
Libraries (si la ventana del SAS Environment se encuentra cerrada, el proceso es
oprimir View, y despus Contents Only, para que se abra Libraries) y se hace
Introduccin al manejo de datos, utilizando SAS

20

clic en el archivero WORK, en el caso del primer cdigo, y/o en el archivero


Ranas, en el caso del segundo cdigo, y en cualquiera de los dos casos, se
observa que contiene la base de datos llamada Ejemplo.

Figura 6. Archivo temporal que se encuentra dentro del archivero WORK.

Ver la base de datos


Para ver los datos del archivo, se hace clic sobre el mismo (Figuras 6 y 7). Se
pueden tener abiertas simultneamente dos o ms bases de datos, pero es preciso
cerrarlas antes de que se ejecute un cdigo. Es preferible abrir las bases de datos
una por una, e irlas cerrando despus de verlas, para no olvidar cerrar alguna antes
de dar la instruccin de Run.

Introduccin al manejo de datos, utilizando SAS

21

Siempre es aconsejable ver como qued la base de datos para verificar que result
lo que queramos que sucediera. Los programas de cmputo, al menos hasta el
momento de escribir esto, hacen siempre lo que se les indica, que a veces no es lo
que el programador quera.

Figura 7. Los datos abiertos del archivo Ejemplo que se encuentra dentro del
archivero WORK.

Guardar los cdigos


Para guardar el cdigo (todo lo que escribimos; en este ejemplo, desde DATA hasta
RUN;) se deber abrir el men File, y seleccionar Save As (Figura 8). Luego se le
da un nombre al cdigo y se elige la carpeta donde queramos que se guarde (Figura
9), o bien, se puede crear una carpeta, tal como se hace en el programa Word.

Introduccin al manejo de datos, utilizando SAS

22

Figura 8. Men que se abre para guardar un cdigo antes de cerrar la sesin de SAS.

Figura 9. Pantalla para dar nombre al cdigo de SAS que se desee guardar.
Introduccin al manejo de datos, utilizando SAS

23

En todo caso, antes de cerrar SAS, sale un cuadro con la pregunta (en ingls, para
las versiones que nos ocupan) equivalente a: Desea guardar lo que est escrito en
el Editor? Si respondemos que s (seleccionando y haciendo clic en YES), van
saliendo las opciones anteriormente descritas, y que se muestran para el ejemplo de
las ranas en las Figuras 8 y 9.

Tamao de las bases de datos guardadas en SAS


Prcticamente no hay lmite para el tamao de las bases de datos que se guarden en
SAS. El lmite es el tamao del disco duro de la computadora. Por supuesto, para
bases de datos muy grandes, los procesos del programa pueden tardar minutos,
horas, o hasta das. Generalmente, esto sucede slo cuando se manejan datos de
poblaciones muy grandes, como por ejemplo, datos de los habitantes de pases
enteros. En ciencias agropecuarias, puede haber bases de datos muy grandes en
anlisis genticos, pero, para la mayora de la investigacin en agronoma y ciencia
animal, las bases de datos no son muy grandes, y el programa corre en fracciones
de segundo.

Acceso a los cdigos guardados


Los cdigos guardados pueden encontrarse a travs del dibujo del flder amarillo
abierto, o con File, y luego Open. Cuando se abre un cdigo que se encuentra
guardado, se abre en el Editor, por lo tanto, para ejecutarlo, basta oprimir Run; y
se ejecutarn todos los cdigos guardados, en el orden de aparicin en el Editor.
Por supuesto, si se desea ejecutar uno solo de una serie de cdigos, basta con
sombrearlo y luego oprimir Run;.

Introduccin al manejo de datos, utilizando SAS

24

CAPTULO 5

Los programas de SAS

En SAS las instrucciones (llamadas programas o cdigos de SAS) se escriben en


la ventana del editor. El Enhanced Editor, disponible de la versin de SAS 8.2 en
adelante, escribe en letras de colores que ayudan a verificar de un vistazo que el
cdigo est correcto. Las porciones incorrectas quedan resaltadas en rojo.

Las instrucciones de un cdigo se van a ejecutar en el orden en el que se escriban


(esto hay que tenerlo siempre presente). Todas las instrucciones, o el final de una
serie de instrucciones deben terminar en punto y coma (; ).

Por lo anterior, cuando un programa no corra bien, primero hay que verificar que:
1. No se haya olvidado una ;
2. Todas las palabras estn correctamente escritas, y
3. El orden de las palabras en los programas cdigos.

Acerca de los comentarios


Dentro de un cdigo pueden insertarse comentarios. Es aconsejable hacerlo,
especialmente si se piensa utilizar el mismo cdigo en un futuro, para tener una
referencia de lo que hace cada parte del cdigo. Dentro de un comentario (
comentario;), se puede escribir cualquier cosa; todo lo que se encuentre dentro de
y ; , no va a ser ledo por SAS.

Sin embargo, con respecto a la escritura de cdigos y comentarios, es preciso


sealar que:
a)

LOS COMENTARIOS NO SE DEBEN DE COLOCAR EN MEDIO DE UNA

INSTRUCCIN,
Introduccin al manejo de datos, utilizando SAS

25

b)

NO se deben UTILIZAR las PALABRAS de SAS como nombre de una

variable, o como nombre de archivo, o como palabra alguna que sea para uso
del programador,
c)

NO se debe usar para codificar (pero se puede utilizar dentro de un

comentario), la LETRA ; solo se pueden usar las 26 letras que existen en


ingls, puesto que los programas estn escritos en ese idioma.

Por ejemplo: Si se quiere escribir:


DATA run;
INPUT rana tamao salto;
CARDS;

Tambin puede escribirse DATALINES;

16

18

17

12

17

21

15

16

17

;
tamao 1= chico, tamao 2 = mediano; tamao 3 = grande;
Run;

El programa no va a correr, porque:


1.

El archivo se llama run (palabra SAS)

2.

El nombre de la segunda variable (tamao) tiene una

3.

Se escribi un comentario despus de CARDS. La instruccin completa

incluye la palabra CARDS y todos los datos hasta el final. Se trata de una sola

Introduccin al manejo de datos, utilizando SAS

26

instruccin, aunque tenga intercalada un ; despus de CARDS, por lo que al


colocar el comentario en ese lugar, se interrumpe la instruccin.
4.

Dentro del comentario: tamao 1= chico, tamao 2 = mediano; tamao 3

= grande; se puso una ; de ms, despus de la palabra mediano.

No importa si dentro de cada cdigo se intercalan letras maysculas y minsculas, ni


se requiere dejar espacios antes o despus de cada orden. Sin embargo, es mucho
ms fcil entender de qu se tratan los cdigos, encontrar posibles errores, y/o
modificar un cdigo para utilizarlo en otra ocasin, si se sigue un cierto orden.

Para algunos casos de manejo o de anlisis de datos, quiz sea preferible utilizar
cdigos ya hechos con anterioridad, como una receta de cocina, que NO se debe
variar, excepto para cambiar nombres de variables, de base de datos y de archivos.

Recomendacin
Cuando se manejan datos, especialmente cuando las bases de datos tienen muchas
observaciones y/o variables (miles o millones), a veces es necesario o aconsejable,
inventar una pequea base de datos, correrla con el cdigo que est a prueba,
verificar que el cdigo est haciendo lo que se desea, y luego cambiar el nombre de
la base de datos con la que verdaderamente se quiere trabajar. Tambin se
recomienda, antes de manejar los datos, hacer una copia de la base de datos
original, y luego manejar la copia, para que si hubiese algn problema, se tenga un
respaldo.

Un cdigo de trabajo en SAS usualmente incluye:


DATA nombre

el nombre del archivo o de la base de datos a trabajar;

PROC nombre

el nombre del procedimiento a utilizar (qu se va a hacer);

run;

indica el fin del cdigo ;

Algunos programadores acostumbran escribir run; quit;, y no solo run;, hasta el


final del cdigo. Esto es opcional.
Introduccin al manejo de datos, utilizando SAS

27

Un nuevo paso o una nueva etapa del programa tambin puede indicarse al iniciar la
siguiente lnea con DATA o PROC, pero el fin final, debe tener run; o run; quit;

Procedimientos y rdenes (o instrucciones) de SAS


Un procedimiento es un programa prefabricado, que por su importancia, tiene un
nombre para llamarlo y hacerlo que ejecute sobre una base de datos. Ejemplos son
los anlisis de regresin o los anlisis de varianza. Algunas instrucciones, que
generalmente realizan acciones menos complejas que los procedimientos, no estn
precedidas por la palabra PROC.

Algunos procedimientos y rdenes son:


Procedimientos (empiezan con PROC):
a) para manejo de datos: freq, means, y sort.
b) para anlisis de datos: glm, reg, y mixed.

rdenes (van despus de DATA):


c) merge, set, if ..then, drop, input, put, y rename

Si los cdigos son muy largos, pueden escribirse primero en Word y luego cortar y
pegar en el Editor de SAS. Sin embargo, es preferible hacer cdigos sencillos y
cortos, y primero correrlos en archivos de prueba, que sirvan exclusivamente para
verificar que los programas realicen lo que se espera que hagan. Una vez que el
programa corri con el archivo de prueba, se modifica la parte del cdigo que se
refiere a que archivo debe leer SAS, y se le escriben los comentarios apropiados.

Manejo de los resultados


Se recomienda ir copiando en Word los resultados que aparezcan en el Output, e
ir limpiando la ventana del Output entre corridas. Alternativamente, en la ventana de
Resultados (vertical, a la izquierda), se puede ir abriendo cada resultado, pues
corresponde uno para cada cdigo.

Introduccin al manejo de datos, utilizando SAS

28

Existen varias opciones que controlan como saldrn los resultados de SAS al
Output. Slo unas cuantas son las que se utilizan en forma rutinaria para cambiar
los defaults. Para ver la lista completa de opciones disponibles, se escribe:
proc options;
Run;

Para utilizar una opcin, escriba la palabra OPTIONS como parte del cdigo de SAS,
i.e.

Options linesize= 80 nodate;

En este caso, la opcin va a dar un tamao de lnea de 80 caracteres. Nodate es


una opcin que pide no imprimir la fecha en las hojas de resultado de SAS.

Las opciones se pueden poner en la primera lnea que se escriba, pero puede estar
en cualquier lugar del cdigo, excepto en medio del mismo. Si se escribe otra opcin
despus, se cancelan las primeras.

NOTA IMPORTANTE: Si se desea detener la ejecucin de un programa, se debe


escribir QUIT, STOP, o ABORT, o mejor an, esperar pacientemente hasta que SAS
termine de ejecutar el programa. Nunca se debe cerrar SAS para tratar de detener un
programa, pues los datos van a desaparecer hasta donde hayan sido ledos por el
programa en ejecucin. Es recomendable tener un respaldo de la base de datos
original, y utilizar las copias para ejecutar todos los programas deseados, ya
que un error de cdigo puede hacer que se borren o se modifiquen los
archivos.

Introduccin al manejo de datos, utilizando SAS

29

Introduccin al manejo de datos, utilizando SAS

30

CAPTULO 6

La base de datos

Los archivos de datos en SAS tienen una estructura bien definida: las variables se
encuentran en columnas (de hecho, a veces se les llama columnas), mientras que
las observaciones estn en hileras, en forma parecida a las tablas de Excel, como
se vio en el ejemplo de las ranas. Sin embargo, se pueden inter convertir las hileras
en columnas con proc transpose (que no se va a tratar en esta obra). En caso de
que se requiriese efectuar este tipo de manipulacin de los datos, se recomienda
utilizar Excel. Esto puede hacerse exportando los datos de SAS hacia Excel
(tambin utilizando la funcin del Wizard, como se ver despus para la
importacin de datos de Excel hacia SAS), efectuar el manejo que se desee en
los datos, y reimportando a SAS, o bien, manipulando los datos originales desde el
principio en Excel. Sin embargo, en este caso (y siempre), se debe cuidar que
todas las celdas de Excel tengan el formato correcto; es decir, que no vaya a haber
un formato de texto donde debera haber un formato de fecha, o un formato de
moneda donde deba ser de nmero, etc. Cuando esto sucede, parte de la
informacin se va a transferir a SAS en forma incorrecta o simplemente no se va a
transferir, ya sea toda, o parte de la tabla de Excel.

Los datos pueden pegarse desde un editor de textos, escribirse directamente en la


ventana del Editor de SAS, o bien, importarse del editor de textos o de una hoja
de clculo (como Excel) a un archivo de SAS, y hacer este archivo, ya sea
temporal o permanente. Tambin se pueden exportar los datos. En el men se
encuentra un ayudante (Wizard) para importar o para exportar.

Introduccin al manejo de datos, utilizando SAS

31

Como ejemplo, vamos a importar una base de datos desde Excel (un archivo de un
experimento de maz), y luego vamos a exportar una base de datos de vacas
lecheras hacia Excel.

1. Importar bases de datos de Excel


Supongamos que tenemos una base de datos Evaluacin de genotipos de maz en
Excel (una porcin de esta base de datos se encuentra en el Apndice). Debemos
importar esta base de datos hacia SAS. Esta base de datos se puede importar
mediante un cdigo escrito en el Editor para que quede en SAS un archivo igual al
de Excel. Sin embargo, para analizar esos datos, los cdigos a usar tendran que
ser mucho ms complicados porque en el archivo hay comentarios (como se ve en el
Apndice), y los nombres de las variables no son los ms adecuados para utilizar los
procedimientos de SAS, por lo que es recomendable (aunque no siempre
necesario, segn la versin) limitarse a ocho letras, como se mencion antes. Con
una base de datos como la del Apndice, habra que indicarle a SAS que lneas o
hileras no debe leer, cual de las hileras contiene el nombre, y muchos otros detalles.
Es preferible volver a guardar el archivo de Excel con las siguientes modificaciones:
1. Eliminar el ttulo: Evaluacin.
2. Hacer que los nombres de las columnas (variables) tengan ocho o menos
letras y que no contengan espacios, guiones, puntos, etc. etc. El nombre debe
empezar con una letra, y se pueden incluir nmeros y guin bajo.
3. Que en los datos perdidos (inexistentes en esta base de datos) haya espacio
en blanco, no puntos, ni ceros.
4. Que si hubiera alguna fecha (no en este caso) fuera seguro que el formato de
celda en Excel, es de Fecha.
5. Eliminar los comentarios.
6. Eliminar las unidades de medida. Slo deben quedar los nombres de las
variables y las variables.

Introduccin al manejo de datos, utilizando SAS

32

7. Guardar los cambios en Excel con otro nombre (porque este archivo
tiene menos informacin que el original), para utilizar este archivo para
SAS. Hay que cerrar el archivo antes de poder importarlo a SAS.

Algunos programadores prefieren guardar sus bases de datos ya listas para ser
exportadas a SAS, en formato CSV (comma delimited). Todas las instrucciones que
siguen son vlidas para esta opcin, nicamente se elige, en lugar de Excel, CSV,
y todo lo dems se hace exactamente igual.

El archivo en Excel para este ejemplo, queda como se ve en la Figura 10.

Figura 10. Archivo de datos de Excel editado para ser exportado a SAS.

Para importar los datos de Excel (Figuras 11 a 17):


a)

en File del men de SAS, buscar Import Data y hacer clic.

Introduccin al manejo de datos, utilizando SAS

33

b)

aparece una ventana (este es el Wizard) con el default de importar los

datos de Excel, oprimir NEXT.


c)

aparece otra ventana para escribir la localizacin del archivo en Excel; es

ms fcil, sin embargo, oprimir BROWSE y buscar el archivo.


d)

localizar el archivo y oprimir ABRIR.

e)

en la ventana dar OK.

f)

seleccionar la hoja de Excel que se desea importar y dar NEXT.

g)

seleccionar el archivero en donde se desea guardar la base de datos. Si se

selecciona el Default WORK, el archivo ser temporal, por lo que se borrar


tan pronto se termine de trabajar esa sesin de SAS. En esa misma ventana
se le debe dar un nombre al archivo importado; en este caso, el nombre es
Maiz1. Recuerde: slo se permiten guiones bajos, y no se permite un nombre
que contenga espacios. Sera incorrecto poner Maiz 1 o Maiz-1. Tambin es
mejor limitarse a ocho caracteres. Una vez seleccionado todo esto, oprimir
NEXT.
h)

en la siguiente ventana oprimir FINISH.

Introduccin al manejo de datos, utilizando SAS

34

Figura 11. Utilizacin del Wizard para importar datos hacia SAS.

Figura 12. Seleccin del programa de donde se van a importar datos a SAS.
Introduccin al manejo de datos, utilizando SAS

35

Figura 13. Bsqueda de la localizacin del archivo a importar.

Figura 14. Seleccin del archivo a importar.

Introduccin al manejo de datos, utilizando SAS

36

Figura 15. Aceptar el archivo seleccionado.

Figura 16. Seleccin del archivero donde se va a guardar el archivo a importar.

Introduccin al manejo de datos, utilizando SAS

37

Figura 17. Mensaje que aparece en el Log despus de una importacin exitosa.

Sale un mensaje en el Log de que el archivo temporal Work.maiz1 fue


exitosamente creado (Figura 17). Para ver el archivo vamos a la ventana vertical a la
izquierda (la del ambiente de SAS), en Libraries abrimos WORK y encontramos el
archivo, tal y como se ve en la Figura 18.

Si no se van a hacer todos los anlisis en ese momento, es preferible guardar el


archivo en forma permanente. Es muy fcil despus borrarlo (con DELETE), pero por
lo pronto conviene tenerlo disponible. Se recordar que ya habamos creado el
archivero EJS. Ese es el archivero que vamos a utilizar para guardar MAIZ1. Escriba
lo siguiente en el Editor, y despus oprima el dibujo de RUN:
DATA ejs.maiz1;
set maiz1;
run ;

y!Listo! La base de datos es permanente.

Introduccin al manejo de datos, utilizando SAS

38

Figura 18. Verificando que los datos se hayan importado correctamente.

2. Exportar bases de datos de SAS hacia Excel


Una razn por la que se suelen exportar los datos de SAS a Excel, es porque las
grficas en Excel son ms atractivas y fciles de hacer. El procedimiento es
prcticamente el mismo (en reversa) que para importar utilizando el Wizard (Figuras
19 a 22).

Por ejemplo. Supongamos que tenemos una pequea base de datos en SAS y que
tenemos una base de datos ms grande en Excel. Para unir esas bases de datos
podemos:
a)

importar el archivo de Excel hacia SAS o

b)

exportar los datos de SAS hacia Excel.

c)

unir los dos archivos.

Introduccin al manejo de datos, utilizando SAS

39

Supongamos que la base en Excel est en constante aumento. Puesto que


aumentar datos es ms fcil hacerlo en Excel, decidimos que es preferible exportar
los datos que se tienen en SAS.
El archivo en SAS se llama exportar y est en la carpeta Ejs.
Vamos a File, export data y damos clic:

Figura 19. Seleccin de la opcin de exportar en el Wizard.

Aparece una nueva ventana; ah, debajo de Choose the source SAS dataset
(seleccione la base de datos de origen), en donde dice Library: seleccionar EJS, y
en donde dice: Member, seleccione el archivo llamado Exportar, y luego haga clic
en Next:

Introduccin al manejo de datos, utilizando SAS

40

Figura 20. Utilizacin del Wizard para exportar datos de SAS.

Dejamos los defaults, que incluyen exportar a Excel y damos clic en Next.
Entonces se abre la ventana que sirve para buscar la carpeta de Excel (haciendo
clic en Browse) en donde vamos a guardar la base de datos que queremos
exportar. En este caso, la carpeta se llama Curso de SAS. Al archivo le nombramos
Masdatos, y finalmente, damos clic en Guardar.

Introduccin al manejo de datos, utilizando SAS

41

Figura 21. Buscando el lugar donde se van a guardar los datos a exportar.

Figura 22. Dndole nombre al archivo a exportar.


Introduccin al manejo de datos, utilizando SAS

42

En la siguiente ventana damos clic en Ok, y finalmente, en la prxima ventana


ponemos un nombre (en este caso le pusimos maiz) para completar el proceso y
damos clic en Finish. El archivo en Excel se llama Masdatos.

3. Otras formas de importar o exportar (sin Wizard)


Se pueden importar y exportar datos sin utilizar el Wizard. Esto es un poco ms
complicado y generalmente, el Wizard es la opcin ms indicada y suficiente. Slo se
ofrecen en este captulo algunos comentarios y un ejemplo como informacin
general.

Para que SAS sepa que hacer con una base de datos hay que especificar: que tiene
que ir a donde, o que tiene que venir de donde.

Se puede utilizar la orden PUT para exportar o INPUT para importar. En estos casos
es muy importante saber si los datos van a ser exclusivamente numricos o si van a
contener otros caracteres.

Los datos numricos contienen slo nmeros. Los nmeros pueden ser positivos o
negativos, y contener decimales. Se pueden realizar operaciones matemticas con
ellos, como sumas, restas, y todas las dems.

Los datos de carcter pueden contener nmeros y letras, guin bajo, o


combinaciones de todo lo anterior, pero no se pueden realizar operaciones
matemticas con ellos.

Por ejemplo, la identificacin de animales (ID) puede contener slo nmeros: 00001,
y a veces nmeros y letras: 0001ENE_04, si se desea informar, por ejemplo, que es
el primer animal o animal 1, y que naci en enero de 2004, o puede ser:
01HO_Ene05, para informar que fue el primer nacimiento, que fue Holstein, y que
naci en enero de 2005. Por supuesto, esto es un ejemplo, pues la identificacin de

Introduccin al manejo de datos, utilizando SAS

43

los animales va a seguir las normas locales, regionales, nacionales o internacionales


que se deseen o deban seguir.

Si al menos una observacin contiene un carcter, y no slo nmeros, la variable


completa se considera de tipo carcter.

SAS lee primero algunas observaciones de cada columna para decidir el formato
de toda la columna. Si no se especifica en el cdigo que la variable a importar es de
carcter, y no aparece un carcter en las primeras lneas de datos, SAS va a
suponer que es numrica, pues es el default, y todas las observaciones que
contengan algo ms que nmeros, se van a considerar datos perdidos. Para pedirle
a SAS que una variable sea considerada de tipo carcter, al nombre de la variable, le
debe seguir un signo $.
Por ejemplo: DATA Ej_2;
INPUT ID $ peso;
Datalines;
123 459
12478 670
Ho1 500
Ho2

564

Ho_02 605
HoCAN_1

532

;
Run;

Como puede verse, no importa que las columnas de datos de las variables (ID y
peso) estn alineadas, y ntese que en las observaciones y hasta en el cdigo, se
pueden entremezclar letras y nmeros, y maysculas y minsculas. Sin embargo, es
mejor guardar el mayor orden posible, pues adems de que cuando hay errores de
programacin y un programa no corre, es ms fcil encontrar los errores (o bugs,

Introduccin al manejo de datos, utilizando SAS

44

como coloquialmente se les nombra en ingls), en un programa escrito con cuidado,


y en forma consistente, que en uno en desorden.

En la Figura 23 vemos al archivo Ej_Dos, que se encuentra en el archivero WORK,


que es en donde se guard por no haberse especificado un archivero permanente.
Para guardar los datos en la carpeta permanente EJS, por ejemplo, se hubiera
escrito: DATA Ejs.Ej_2.

Figura 23. Ejemplo de como se ven los datos de un archivo.

Es importante sealar que los nombres de las variables deben contener menos de 32
carcteres (en la versin 7 y anteriores, slo se permita un mximo de ocho). Cada
nombre debe empezar con una letra o con un guin bajo. Los nombres de variables
tambin pueden incluir nmeros. Aqu vamos a restringirnos a nombres de ocho

Introduccin al manejo de datos, utilizando SAS

45

carcteres o menos, y utilizar la primera letra en mayscula. El nmero de variables


(columnas) que se pueden incluir en una tabla de SAS es prcticamente ilimitado.

Introduccin al manejo de datos, utilizando SAS

46

CAPTULO 7

Ms acerca de lectura de datos por SAS

En este captulo se resumen las maneras de hacer que SAS lea los datos que se
necesiten trabajar. Los mtodos ms usuales ya han sido cubiertos. Este captulo es
opcional. Puede pasarse al Captulo 8 sin ningn inconveniente.
1. Creando un archivo de datos con la orden DATA
Con esta opcin, los datos crudos (antes del anlisis) son parte del cdigo de SAS y
se escriben en el Editor.

El siguiente programa o cdigo con la orden DATA crea un archivo de datos llamado
ENCUESTA con 10 observaciones y siete variables. Las variables se llaman ID,
SEXO, EDAD, ING, R1, R2, y R3. Los datos corresponden a una encuesta en donde
ING significa los ingresos anuales totales, en miles, R1 a R3 son la calificacin con
que los individuos (ID) evaluaron a tres productos orgnicos que piensan lanzarse al
mercado. La palabra INPUT define a las variables que deben leerse en cada lnea de
datos. La palabra DATALINES le indica a SAS que el proceso de la palabra DATA ha
sido completado y que la siguiente lnea contiene datos reales. Ntese que las lneas
que contienen los datos no terminan en punto y coma. En lugar de la palabra
DATALINES se puede utilizar la palabra CARDS. Las dos son equivalentes. El punto
y coma antes de PROC PRINT es opcional, pero define mejor cuales son los datos.
Proc print se utiliza para que los datos aparezcan en el Output, de tal manera que
no sea necesario abrirlos desde su archivo para verlos, y para que puedan copiarse
a Word e imprimirse.
options nocenter;
DATA encuesta;
INPUT id sexo $ edad ing r1 r2 r3 ;
DATALINES;
1 F 35 17 7 2 2
Introduccin al manejo de datos, utilizando SAS

47

17 M 50 14 5 5
33 F 45 6 7 2
49 M 24 14 7 5
65 F 52 9 4 7
81 M 44 11 7 7
2
F 34 17 6 5
18 M 40 14 7 5
34 F 47 6 6 5
50 M 35 17 5 7
;
PROC PRINT; RUN;

3
7
7
7
7
3
2
6
5

La salida (lo que se ve en el Output) de esta corrida es la siguiente:


OBS
1
2
3
4
5
6
7
8
9
10

ID
1
17
33
49
65
81
2
18
34
50

SEXO
F
M
F
M
F
M
F
M
F
M

EDAD
35
50
45
24
52
44
34
40
47
35

ING
17
14
6
14
9
11
17
14
6
17

R1
7
5
7
7
4
7
6
7
6
5

R2
2
5
2
5
7
7
5
5
5
7

R3
2
3
7
7
7
7
3
2
6
5

La variable SEXO en la orden INPUT est seguida por un signo de dlar ($) para
indicar que esta variable es de carcter. Si no se especifica la instruccin, SAS
supone que las variables son numricas. Si entonces encuentra un carcter (una
letra o smbolo), le va a asignar un valor perdido (.) a esa observacin. Por ejemplo,
si se quita el signo de dlar, como se ve en el siguiente cdigo:
DATA encuesta;
INPUT id sexo edad ing r1 r2 r3 ;
DATALINES;
1 F 35 17 7 2 2
17 M 50 14 5 5 3
33 F 45 6 7 2 7
49 M 24 14 7 5 7
65 F 52 9 4 7 7
81 M 44 11 7 7 7
2
F 34 17 6 5 3
18 M 40 14 7 5 2
34 F 47 6 6 5 6
50 M 35 17 5 7 5
;
PROC PRINT; RUN;

Introduccin al manejo de datos, utilizando SAS

48

El resultado de la corrida se ver as:


OBS
1
2
3
4
5
6
7
8
9
10

ID
1
17
33
49
65
81
2
18
34
50

SEXO
.
.
.
.
.
.
.
.
.
.

EDAD
35
50
45
24
52
44
34
40
47
35

ING
17
14
6
14
9
11
17
14
6
17

R1
7
5
7
7
4
7
6
7
6
5

R2
2
5
2
5
7
7
5
5
5
7

R3
2
3
7
7
7
7
3
2
6
5

2. Leyendo datos con sealador de columna


A veces es til decirle a SAS exactamente donde encontrar el inicio y el final de una
observacin o columna. Por ejemplo, cuando los datos contienen una o ms
variables de carcter con diferentes longitudes o que contengan espacios. Por
ejemplo, se desea importar las variables llamadas nombre, edad, ciudad y estado de
una base de datos:
data ejem_dos;
input nombre $ 1-20 edad ciudad $ 29-37 estado $ ;
datalines;
Oliver Schabenberger
33
Lansing
MI
Juan E. Domnguez
37 New York
NY
;
run;
proc print data= estosdat; run;

Observemos que hay un $ despus de nombre, seguido de la posicin en que se


debe encontrar el nombre; en este caso, entre las posiciones 1 y 20 de datalines.
Despus viene una variable numrica: la edad; aqu no se puso ni $ ni la posicin
en la columna, porque se debe leer el nmero entero. Luego viene ciudad, con su
signo $ que indica que es una variable de carcter, y la indicacin de donde a donde
debe leerse. Finalmente, tenemos estado, indicando que es un carcter, pero sin
especificar su posicin. No es necesario para la variable ESTADO porque su entrada
comienza en la columna siguiente a la variable anterior y no contiene espacios en
blanco, adems, siendo la ltima variable, no es necesario saber su longitud total.

Introduccin al manejo de datos, utilizando SAS

49

En resumen: Despus de variables de texto, escribir $. Si el nombre de la variable


incluye espacios, indicar las columnas de datalines (las lneas de datos) en donde
puede encontrarse la variable (las variables en SAS por default estn delimitadas
por espacios). Los datos del archivo EJEM_DOS aparece as:
OBS
1
2

NOMBRE

EDAD

Oliver Schabenberger
Juan E. Dominguez

33
37

CIUDAD
Lansing
New York

ESTADO
MI
NY

Si el sealador de $29-37 despus de CIUDAD se reemplaza con un simple $ para


indicar una variable de carcter en la orden INPUT, pero sin indicar de donde a
donde se debe leer, sto es lo que sucede:
data ejem_dos;
input nombre $1-20 edad ciudad $ estado $ ;
datalines;
Oliver Schabenberger
33 Lansing
MI
Juan E. Dominguez
37
New Cork
NY
;
run;
proc print data=ejem_dos; run;

OBS

NOMBRE

EDAD

CIUDAD

ESTADO

Oliver Schabenberger

33

Lansing

MI

Juan E. Domnguez

37

New

York

Para la segunda observacin, SAS encuentra los carcteres 'New' y los asigna a la
variable CIUDAD suponiendo que el espacio entre 'New' y 'York' delimita a las dos
variables. Los carcteres 'York' son asignados a la siguiente variable de la orden
INPUT, que es ESTADO.

3. Leyendo datos escritos de corrido


Suponga que un archivo contiene tres variables, X, Y, y Z. Un cdigo con DATA
podra ser:
data XYZ;
input x y z;
datalines;

Introduccin al manejo de datos, utilizando SAS

50

12.4

11.3

1.4

2.1

19.4

;
run;

SAS tambin puede leer observaciones mltiples en cada lnea de datos.


Simplemente aada el smbolo @@ al final de la declaracin de input, de la
siguiente manera:
data XYZ;
input x y z @@;
datalines;
1

12.4

11.3

2.1

19.4

1.4

;
run;

Por el smbolo @@, SAS lee cada lnea de datos y va llenando las variables X, Y, y
Z en turno, y continuar llenando las variables hasta que llegue al final de la lnea.
Sin el smbolo @@, se habra pasado a la siguiente lnea tan pronto la ltima
variable estuviese llena, dejando fuera datos, como ocurri en el ejemplo anterior
cuando ley New y dej fuera York, y evit que el valor NY siquiera fuese ledo.

4. Leyendo datos de archivos ASCII


Algunas veces se puede obtener gran cantidad de datos que se encuentran escritos
en archivos ASCII, que generalmente tienen extensin TXT. Esto ocurre con editores
de texto, como el Notepad de Microsoft, o muchos otros, que sirven especficamente
para guardar datos (existen editores de texto que se pueden obtener gratis desde
Internet). Algunos programas, como C, C++, Fortran, y otros, requieren que la
informacin se encuentre en archivos de extensin TXT. Sin embargo, generalmente

Introduccin al manejo de datos, utilizando SAS

51

es ms fcil editar los datos primero en SAS, y despus, enviarlos al programa de


anlisis que se desee.

Tambin es posible que los archivos que se deban analizar con SAS, de origen
vengan en archivos ASCII. Con frecuencia, trabajar con ese tipo de archivos es ms
conveniente que con archivos de hojas de clculo, porque los archivos ASCII ahorran
espacio, y a veces son preferibles cuando las variables contienen muchas
observaciones.

Hay dos formas para hacer que SAS lea un archivo ASCII utilizando la orden DATA:
una es usando slo la palabra INFILE y otra es con la palabra FILENAME ms la
palabra infile.

Infile
Utilice la palabra infile antes de la palabra INPUT. La estructura de la orden
INPUT no cambia. Es exactamente como si se fuera a copiar el contenido del archivo
ASCII dentro de la orden DATA despus de la palabra DATALINES, slo que ahora
debe especificar en la orden INFILE cual archivo se debe leer, y donde se encuentra.
En el ejemplo de cdigo que sigue, el archivo de llama Do.txt y se encuentra en el
drive D, dentro de una serie de flderes. Por ejemplo:
data readasc;
infile 'D:\investig\Toxina\Data2007\DO.txt';
input lugar rancho muestra DO;
run;

Filename
FILENAME asocia un archivo con un nombre corto dentro de un programa de SAS.
La palabra FILENAME debe aparecer afuera de la orden DATA. Por ejemplo:
filename toxic 'D:\investig\Toxina\Data2007\DO.txt';
data readasc;
infile toxic;

Introduccin al manejo de datos, utilizando SAS

52

input lugar rancho muestra DO;


run;

El archivo D:\investig\Toxina\Data2007\DO.txt ahora se encuentra asociado con el


nombre ms corto TOXIC. La palabra INFILE dentro de la orden DATA ahora se
refiere al nombre corto. A este atajo en el lenguaje que usa para SAS, que parecido a
utilizar un apodo, se le conoce como un fileref.

Si las columnas del archivo de ASCII no estn delimitadas por espacios (por ejemplo,
los archivos de MSExcel que se guardan como archivos de texto *.prn estn
delimitados por comas), se pueden aadir las opciones de delimitantes dentro de la
declaracin de INFILE. Por ejemplo, para especificar que los delimitantes entre
variables son comas, se escribe: delimiter = ,; tal como se ve a continuacin:
filename toxic 'D:\investig\Toxina\Data2007\DO.txt';
data readasc;
infile toxic delimiter=',';
input lugar rancho muestra DO;
run;

5. Para saltar informacin que SAS no debe leer


Muchos archivos contienen informacin del encabezado, que no debe ser parte de
los datos para SAS, como en el caso de los datos en el Apndice. Para saltarse
registros al principio del archivo, utilice la opcin FIRSTOBS= . Para leer nicamente
un nmero especfico de registros, utilice la opcin OBS =

. Por ejemplo:

filename toxic 'D:\Investig\Toxina\Data2007\DO.txt';


data readasc;
infile toxic delimiter=',' firstobs=12 obs=100;
input lugar rancho muestra DO;
run;

Slo se van a leer 100 observaciones del archivo D:\Investig\Toxina\Data2007\DO.txt


comenzando por la 12a lnea, y se van a buscar comas como delimitantes de las
variables.
Introduccin al manejo de datos, utilizando SAS

53

Introduccin al manejo de datos, utilizando SAS

54

CAPTULO 8

Algunos procedimientos de SAS

A partir de este captulo, se dar una especie de lista de cdigos. Todos estos deben
de escribirse en la ventana del Editor, y hacer referencia a los archivos que se
deseen manejar o analizar.

1. Para ordenar los datos


A veces sucede que se tienen los datos revueltos, ya sea por haberlos capturado
poco a poco a travs del ao, y/o haber unido varias bases de datos ya una vez
guardados en SAS, o por cualquier otra causa. Tambin puede ser til ordenar o
reordenar las bases de datos por orden alfabtico o por fecha de captura o por
alguna caracterstica, como nmero de lactancia, etc., para revisar ms fcilmente
los datos. Por otra parte, ordenar es un paso indispensable antes de utilizar ciertas
rdenes, como merge (pgina 66), por ejemplo. Para reordenar los datos, se utiliza
la orden proc sort.

Proc sort
Ordena los datos por la variable o las variables que seleccionemos.
El cdigo bsico es:
proc sort data=nombre; *nombre es el nombre del archivo;
by id; *by id le indica a SAS por cual variable debe de ordenar los datos, en este
caso, por la variable llamada id;
*o puede ser, por ejemplo:by id raza sexo etc;
Run;

Introduccin al manejo de datos, utilizando SAS

55

Para eliminar datos repetidos


Tambin se puede pedir que se eliminen los datos repetidos en la hilera de la
variable por la cual se est ordenando. Esto se hace con la orden nodupkey. Por
ejemplo, si se desea eliminar identificaciones repetidas (id iguales) de la base de
datos llamada nombre, se debe escribir:
Proc sort data=nombre nodupkey;
By id;
Run;
2. Para verificar la calidad de los datos y/o resumir informacin de los datos
crudos
En agricultura y ganadera, a veces se realizan estudios retrospectivos, que tambin
se denominan observacionales. Esto significa que los datos no fueron obtenidos
siguiendo un diseo especfico, y por lo tanto, generalmente no estn listos para
analizarse tal como fueron capturados. En estos casos, especialmente, pero no
exclusivamente, conviene verificar tanto la calidad de los datos que se han
recopilado, como si hay suficientes datos en todas las categoras de inters para
realizar anlisis valiosos. Usar proc freq y proc means son dos formas de obtener
informacin rpidamente de la base de datos con la que estemos trabajando.

Proc freq
Con Proc freq se obtienen frecuencias de las variables de inters. De esta manera,
se puede verificar que se tengan suficientes datos para un anlisis estadstico
confiable, adems de que se pueden ver algunas tendencias generales de los datos.

El cdigo de proc freq, que saca las frecuencias de las variables que se especifiquen,
a la ventana del Output, es:
proc freq data= nombre;
tables variable1;
*puede ser variable1*variable2*variablen;
run;

Introduccin al manejo de datos, utilizando SAS

56

Por ejemplo, se est trabajando con una base de datos de cabras (gotas.work1 es el
nombre del archivo), y se va a estudiar que tan estacionales son las cabras en esa
poblacin. Para tener una idea, queremos obtener las frecuencias por mes de
nacimiento (mo_brth es el nombre de esa variable). El cdigo que se usa es el
siguiente:
proc freq data=goats.work1;
options nodate;
table mo_brth; run;

El resultado aparece en el Output, y contiene las frecuencias directas (frequency), el


porcentaje (percent), las frecuencias acumuladas (cumulative frequency) y el
porcentaje acumulado (cumulative percent), as como la cantidad de observaciones
en donde (en este caso) la variable mo_brth tiene datos perdidos (frequency
missing):
TheFREQProcedure

CumulativeCumulative
mo_brthFrequencyPercentFrequencyPercent

1198556.83198556.83
25948520.457934027.27
38928630.6916862657.97
46178321.2423040979.21
53069910.5526110889.76
6122574.2127336593.97
742161.4527758195.42
813250.4627890695.88
913610.4728026796.35
1020200.6928228797.04
1133551.1528564298.19
1252541.81290896100.00

FrequencyMissing=26002

Si se prefiere sacar los datos a un archivo, se incluye la orden:

tables variable1/noprint out = nombre_archivo;


* la palabra noprint puede ir antes o despus de la palabra out que especifica a
donde se desea enviar los resultados;

Introduccin al manejo de datos, utilizando SAS

57

Por ejemplo, si se desea que las frecuencias aparezcan en el archivo temporal


check, se escribira:
proc freq data=goats.work1;
options nodate;
table mo_brth/noprint out = check; run;

Si el archivo va a ser temporal, slo hay que poner un nombre; si se prefiere que se
guarde el archivo en forma permanente en SAS, entonces hay que indicar el
nombre del archivero en donde debe guardarse. Si, por ejemplo, el archivero se
llama: datos y el archivo queremos que se llame results, la orden sera:
out=datos.results.

Proc means
Con proc means es fcil constatar que los datos con que estamos trabajando estn
dentro de rangos razonables y que SAS est tomando los datos con el formato
correcto. Por ejemplo, si se han importado datos de Excel, en ocasiones una
columna que debera tener formato de nmeros, es importada con formato de texto
(o viceversa), y aun cuando fsicamente se pueda ver la tabla en SAS con nmeros,
es posible que tenga otro formato, y en este caso, de los datos de esa columna, no
se sacarn promedios.

Proc means se utiliza para obtener promedios, desviaciones estndares, mximos y


mnimos de los datos. El cdigo de proc means que va a considerar todas las
variables es simplemente:
Proc means data= nombrearchivo;
Run;

Si slo se quiere la informacin de algunas variables, entonces, antes de la orden


run; aadir:
Var variable1 variable2 ..variablen;
Y queda, por supuesto:

Introduccin al manejo de datos, utilizando SAS

58

Proc means data= nombrearchivo;


Var variable1 variable2 ..variablen;
Run;

Si se desean los promedios y dems informacin, correspondiente a una o ms


variables de clasificacin (no numricas), como raza, ao, o pas, por ejemplo, el
cdigo debe incluir la(s) variable(s) clasificatorias de las que se desee obtener la
informacin, precedidas por la palabra by, y las variables a las que se les obtenga
promedios, mnimos, etc., precedidas por la palabra Var.

Por ejemplo, supongamos que se tiene un archivo (temporal, pues no lleva el nombre
del archivero) llamado j, del cual queremos obtener informacin acerca de plantas
susceptibles a ser atacadas por plagas. Por razones de nuestra investigacin,
necesitamos que la informacin sea por especie de planta atacada y tipo de insecto
plaga. Se requieren estadstica descriptiva con los promedios, desviaciones
estndares y mximos, y mnimos de la cantidad de insectos (en cualquier estado de
evolucin) encontrados en un muestreo y de la edad de las plantas atacadas.

Sin embargo, para poder utilizar esta opcin de proc means, es necesario ordenar
los datos por las variables de las cuales pretendemos obtener informacin, de la
siguiente manera:
proc sort data=j;
by especie insecto; run;

El cdigo que nos da la estadstica descriptiva es:


proc means data=j;
*se pretende obtener informacin de la base de datos llamada j;
by especie insecto;
*estas son las variables clasificatorias;
VAR cantidad;
*queremos saber el promedio de la cantidad de insectos encontrados en un
muestreo de plantas que han sido atacadas;
run;

Introduccin al manejo de datos, utilizando SAS

59

Si la base de datos fuera la siguiente:


Especie
edad
cantidad
insecto
roble
90
2
grillo
roble
90
3
grillo
roble
180
4
grillo
roble
180
5
grillo
cedro
90
1
grillo
cedro
90
0
grillo
cedro
180
7
grillo
cedro
180
5
grillo
roble
90
8
palomill
roble
90
6
palomill
roble
180
4
palomill
roble
180
3
palomill
cedro
90
15
palomill
cedro
90
12
palomill
cedro
180
6
palomill
cedro
180
2
palomill
*se escribi palomill, es vez de palomilla para mantener en ocho o menos
el nombre;

Ntese que existen ms variables (est la edad, que en este caso no interesa) que
las que se utilizan en la orden de proc means.
El output sera:
TheSASSystem1

especie=cedroinsecto=grillo

TheMEANSProcedure

AnalysisVariable:cantidad

NMeanStdDevMinimumMaximum
43.25000003.304037907.0000000

especie=cedroinsecto=palomill

AnalysisVariable:cantidad

NMeanStdDevMinimumMaximum
48.75000005.85235002.000000015.0000000

especie=robleinsecto=grillo

AnalysisVariable:cantidad

NMeanStdDevMinimumMaximum
43.50000001.29099442.00000005.0000000

especie=robleinsecto=palomill

AnalysisVariable:cantidad

NMeanStdDevMinimumMaximum
45.25000002.21735583.00000008.00000004

Introduccin al manejo de datos, utilizando SAS

60

Este se puede copiar, editar (para que se vea una tabla ms presentable) y guardar
en un archivo de Word, por ejemplo.
El siguiente cdigo ordena que los datos, una vez que hayan sido ordenados por ID,
se guarden en un archivo llamado lactone, y no permite que haya observaciones
repetidas por la variable ID.
PROC SORT DATA=lact OUT=lactone NODUPKEY;
by ID;
run;

3. Para manejar la base de datos


A veces conviene modificar un archivo; por ejemplo para efectuar algn anlisis, o
para obtener datos derivados de los originales, o para tener archivos separados
segn su contenido. En esta seccin se ofrecen algunas opciones para lograr lo
anterior.
Drop
Para eliminar algunas variables, se utiliza la orden DROP:
Data nombre1 (drop = variable1 variable2 .variablen); *este es el nombre del
archivo en donde van a quedar grabadas todas las variables, excepto las que se
estn eliminando con drop;
Set nombre2; * este es el archivo original de donde se van a eliminar las variables;
run;
Si se quiere modificar el mismo archivo, puede ponerse el mismo nombre tanto en
data como en set, pero es preferible poner otro nombre, verificar que se obtiene lo
que uno espera, y entonces ya cambiarle el nombre al archivo. Hay que tener
paciencia o puede perderse un archivo completo por algn error de codificacin.
Recuerde que el programa va a hacer lo que se le pida, no lo que uno quiere que
haga.
data nuevo_nombre;
set nombre_anterior;
run;
Introduccin al manejo de datos, utilizando SAS

61

Keep
Si es ms fcil instruir a SAS acerca de las variables que deban quedarse, en vez
de decirle cuales debe eliminar, entonces se puede utilizar la orden keep,
exactamente igual que drop:
Data new (keep=variable1 variable2..variablen);
set data old;
run;

Por ejemplo, de una base de datos grande, llamada vacas.hol que tiene muchas
variables y todas las lactancias de las vacas, queremos hacer un anlisis nicamente
de la primera lactancia, y en el nuevo archivo queremos incluir slo las variables id
(la identificacin) breed (la raza) herdid (el hato) y lactno (el nmero de lactancia).
Esta nueva base de datos queremos que se llame new. Entonces escribimos en el
Editor:
data vacas.new (keep=id breed herdid lactno);
set vacas.hol;
if lactno NE 1 then delete; *esta orden le indica a SAS que solo queremos las
primeras lactancias;
run;

Rename
Esta orden le cambia el nombre a una variable. Por ejemplo: en el archivo new
(recuerde: nada de acentos ni espacios ni smbolos en ningn nombre que se utilice
en SAS), queremos renombrar algunas variables. Queremos que sus nombres
ahora estn en espaol en vez de en ingls. Especficamente queremos que en vez
de breed, la variable se llame raza, en lugar de milk, que sea leche, y en vez
de fat, sea grasa. Por precaucin, primero copiamos la base de datos a otro
archivo, al que llamamos new2. La orden requiere que se escriba:
rename=(variable_antigua=variable_nueva).
En consecuencia, sto es lo que escribimos:
Introduccin al manejo de datos, utilizando SAS

62

data new2 (rename=(breed = raza milk=leche fat=grasa ));


set new;
run;

Recuerde!
Tenga cuidado en la escritura del cdigo, o mejor haga un archivo temporal, y si los
resultados son los esperados, entonces . y slo entonces, haga un archivo
permanente llamado, por ejemplo, analisis.new (o como realmente sea). Otro
ejemplo:
data prueba (rename=(zea_maiz = maiz));
set analisis.pastos;
run;

4. Para crear variables por medio de operaciones matemticas


Los smbolos +, -, /, * y ** se pueden utilizar para indicar, respectivamente: suma,
resta, divisin, multiplicacin, y elevacin al cuadrado. Tambin se pueden hacer
operaciones ms complicadas, como elevar a otras potencias y sacar races, pero
suele ser ms fcil hacerlo en una hoja de clculo, como Excel y despus importar
los datos a SAS.

Por ejemplo, se tiene el dato del promedio semanal de produccin de leche de unas
vacas, y en vez de eso, se desea obtener el total de leche producida en esa semana.
Como para sacar el promedio, lo que se hizo fue sumar las producciones de la
semana y despus, dividir entre siete, se tiene que hacer la operacin contraria, es
decir, multiplicar el promedio por siete. Esa operacin se hace de la siguiente manera
en el archivo vacas.leche:
Data vacas.leche;
set vacas.leche;
LechAcum = promsem*7;
Run;

Introduccin al manejo de datos, utilizando SAS

63

Un extracto del archivo vacas.leche, sera:


Vaca
1
2
3

promsem
23.5
27.2
25.9

El nuevo archivo sera


Vaca Promsem LechAcum
1
23.5 164.5
2
27.2 190.4
3
25.9 181.3

Otro ejemplo: Se desea formar un nmero nico de identificacin de procedencia de


miel. Este va a ser el nmero del LOTE para exportacin. Se tienen claves de dos
dgitos para los datos de pas, ciudad, apiario, colmena y cosecha. En un caso
especfico, estas claves son las siguientes:

pas = 52
ciudad = 12
apiario = 01
colmena = 25
cosecha = 01

Lote

pais
52

ciudad
12

apiario
01

colmena
25

cosecha
01

La identificacin nica de este lote de miel debera ser: 5212012501.


Como se tienen miles de proveedores (miles de lotes), es necesario automatizar la
creacin de los nmeros de lotes.

El cdigo para obtener la identificacin podra ser:


data export.miel; *los datos deben guardarse en el archivo export;
set miel; *los datos originales estn en el archivo temporal miel;

Introduccin al manejo de datos, utilizando SAS

64

lote_id = pais*100000000 + ciudad*1000000 + apiario*10000 + colmena*100 +


cosecha;
run;

As se va a sumar, en el caso del ejemplo:


5200000000 + 12000000 + 010000 + 2500 + 01, lo que da el nmero de
identificacin que se necesita.

5. Para unir dos o ms bases de datos


Existen bsicamente dos formas de unir datos: aadir las hileras de una base a las
de otra (s), o aadir las columnas de una base de datos a las de otra(s).

En el primer caso, se utiliza la orden set, parecido a como ya se vio antes para
hacer una base de datos igual a otra, pero con otro nombre (recuerdas? es: data
new; set old; run;).

Set
Por ejemplo, se tienen tres bases de datos para un estudio de eficiencia econmica
de la utilizacin de tres tipos contrastantes de plantaciones forrajeras: una de maz,
otra de sorgo, y otra de una leguminosa. Las bases se encuentran en el archivero
Efic, y para su anlisis, se desea unirlas. Lo ms lgico es unir sus hileras, es decir,
que quede la informacin de maz bajo (o encima ) de la de sorgo y de la
leguminosa.

Entonces se escribe en el Editor:


Data Efic.todas; *la nueva base de datos se va a llamar todas;
Set efic.maiz efic.sorgo efic.legum; *se estn uniendo las bases de cada uno de los
tipos de plantaciones;
Run;

Introduccin al manejo de datos, utilizando SAS

65

Merge
Esta orden sirve para unir dos o ms bases de datos para formar un solo archivo que
contenga las variables de las bases de datos originales, es decir, se unen o
combinan columnas, de manera que la nueva base de datos tenga ms variables.

En muchos casos se necesita unir columnas de una serie de bases de datos. Esto
ocurre, por ejemplo, cuando se estn efectuando estudios con mediciones repetidas,
y cuyas bases de datos se van colectando en forma separada por fecha. Si cada
individuo que se mide, digamos.. cada mes, o cada ao, etc. tiene un nmero de
identificacin, lo ms lgico es que las bases de datos de las diferentes fechas se
vayan uniendo por el nmero de identificacin.

Por ejemplo, en un estudio de crecimiento de rboles, stos fueron medidos una vez
cada seis meses durante dos aos (cuatro medidas). Los datos de cada da de
medicin fueron guardados en archivos permanentes llamados, respectivamente:
medida.primera, medida.segunda, medida.tercera, y medida.cuarta. Ahora es preciso
analizar las cuatro bases de datos juntas, para lo cual, se va a formar el archivo
todos_datos:
data todos_datos; *as como est, va a formar un archivo temporal;
merge medida.primera medida.segunda medida.tercera medida.cuarta;
by id_arbol;
run;

Sin embargo, primero es necesario que cada una de las bases de datos del archivero
medida (primera segunda tercera y cuarta) se ordenen por la variable a unir, que es
id_arbol. Primero hay que escribir, para cada una de las bases de datos:
Proc sort data = medida.primera;
By ID;
Run;
*este cdigo se va a repetir para cada uno de los cuatro archivos;

Introduccin al manejo de datos, utilizando SAS

66

Posteriormente se procede a unir los datos con merge. Es muy importante, que las
medidas en cada archivo de datos, de cada una de las cuatro fechas del ejemplo,
tengan nombres diferentes. Por ejemplo, si se midieron: altura, grosor a la base del
tronco, y dimetro de la copa, los archivos deben identificarse con algo que los
distinga entre mediciones, como:
Altura1 grosor1 diam1 para el archivo de la primera medicin;
Altura2 grosor2 diam2 para el archivo de la segunda medicin;
Altura3 grosor3 diam3 para el archivo de la tercera, y
Altura4 grosor4 diam4 para el archivo de la cuarta y ltima medicin.

Si se dejan exactamente los mismos nombres en los cuatro archivos, al final se van a
tener los datos nicamente del ltimo archivo aadido cuando los datos
correspondan a la misma observacin, como se ve en la Figura 24.

Por ejemplo, en el Editor, se escribe lo siguiente:


data check; input id milk;
cards;
1 11
2 12
3 10
4 9
;
run;
data check2; input id milk;
cards;
3 10
4 9
5 6
6 9
7
15
;
run;
data join;
merge check check2;
by id; run;

Los resultados se ven en la Figura 24, en donde se observa que se perdieron


algunos datos del archivo Check, por no haber utilizado nombres diferentes de las
variables.
Introduccin al manejo de datos, utilizando SAS

67

Figura 24. Ejemplo de la orden merge.

Otro uso de Merge


La orden Merge puede utilizarse para filtrar datos. Por ejemplo, supongamos que
nos llegan los datos productivos y reproductivos de cabras lecheras de toda una
regin. Sin embargo, en un archivo aparte tenemos datos de pedigr de cabras en
donde se indican quienes fueron sus padres y madres. Es preciso que formemos una
base de datos que incluya slo a las cabras que tengan tanto los registros
productivos y reproductivos, como informacin de pedigr, es decir, cabras que se
encuentren tanto en el primero como en el segundo archivo.

Digamos que la base de datos productivos se llama test1 y la base de datos de


pedigr se llama test2. Un cdigo sera (recuerda primero ordenar ambas bases de
datos por la variable a unir, en este caso, por id):

Introduccin al manejo de datos, utilizando SAS

68

data allgoats; *la nueva base de datos se va a llamar allgoats;


merge test1 (in=a) test2 (in=b); *se renombran los dos archivos, ahora son a y b
para SAS;
by id;
*pide que se unan segn su identificacin, por supuesto, los datos deben estar
ordenados segn esta variable ID. Puede unirse por ms de una variable;
if a and b; *And da la condicin de que los IDs deben encontrarse en ambas bases
de datos;
run;

Otras opciones de las condiciones de unin (and, or) podran ser, por ejemplo:
If a and NOT b, es decir, que estn en la base de datos a, pero no en la b;
If b and NOT a, es decir, que estn en la base de datos b, pero no en la a;
if a, es decir, la condicin es que todos los datos del archivo a estn presentes;
if a or b, que estn los datos de a de b. Con frecuencia no es necesario utilizar
or porque es el default.

En general: si se usa and deben suceder las dos condiciones, y si se usa or


puede suceder una u otra condicin para que los datos sean incluidos. Claro, puede
haber ms de dos archivos que se deban unir, y por lo tanto, se tendran archivos
llamados a, b, c, .etc.

Introduccin al manejo de datos, utilizando SAS

69

Introduccin al manejo de datos, utilizando SAS

70

CAPTULO 9

Ms de manejo de datos en SAS

Los condicionantes
Ifthen
Esta es una orden que sirve para indicarle a SAS que, si se cumple una condicin
en los datos de alguna variable, tiene que actuar de tal o cual forma. Algunos
ejemplos de acciones, podran ser: If..algothen:
Delete (entonces borra)
Output (entonces expnlo, mustralo)
(alguna operacin matemtica, crear una variable, o lo que se necesite).

Por ejemplo, supongamos que estamos editando una base de datos de borregos
australianos. La base de datos es demasiado grande como para verificar si todos y
cada uno de los animales tiene identificacin. Podemos en este caso utilizar la orden
ifthen. Como siempre, primero creamos un archivo de prueba, y si todo sale bien,
entonces, y slo entonces, haremos un archivo permanente:
Data=id_only; *nuestro archivo de prueba;
set austr.allsheep; *el archivo original;
if id = '.' then delete; *si no tiene id, entonces borra;
run;

o, alternativamente:
Data=id_only; *nuestro archivo de prueba;
set austr.allsheep; *el archivo original;
if id NE '.' then output; *si tiene id, puesto que NO es Igual a . (NE
es NOT EQUAL TO) entonces muestra los datos;
run;

Introduccin al manejo de datos, utilizando SAS

71

Una pequea lista de condiciones es la siguiente:


= es igual a
NE no es igual a
> es mayor que slo para nmeros
< es menor que.slo para nmeros

En todos los casos, si no se trata de nmeros, sino de texto, es preciso que la


condicin est entre comillas, ya sea:

Por ejemplo, queremos que de un archivo que tiene datos de vacas Holstein y
Jersey, slo nos quedemos con vacas Jersey, que estn codificadas como "JE:
data jerseys;
set milk.allcows;
if breed='JE' then output; *Conviene resaltar la orden con espacio;
*Notese que JE tiene comillas, porque no es un numero sino una variable de
caracter;
run;

De esta manera tendremos una base de datos (primero temporal, en jerseys, que
despus podremos convertir a permanente) con los datos nicamente de las vacas
Jersey.
Ahora supongamos que para algunas vacas no tenemos el dato Edad al parto, que
vamos a codificar como EP, pero tenemos los das en lactancia, la fecha de
nacimiento y la fecha en la que se realiz la evaluacin de las vacas, es decir, la
fecha del muestreo

Los das en lactancia son los que han transcurrido desde el parto, lgicamente. La
edad de la vaca es, naturalmente, la fecha de muestro menos la fecha de nacimiento.
En consecuencia:
Edad de la vaca = fecha de muestro- fecha de nacimiento
A su vez, la edad al parto (EP) va a ser:
EP = Edad de la vaca das en lactancia

Introduccin al manejo de datos, utilizando SAS

72

Un cdigo que podemos utilizar para las vacas que no tienen la edad al parto, es:
Data edad;
Set expto.jerseys;
If EP = . then EP = (FechMues FechNac) - Diaslac;
Run;

Por supuesto, la edad de la vaca va a estar en das, para este ejemplo.

Else if then
Cuando se tienen varias condiciones que realizar sobre una misma variables, es
preferible utilizar la opcin else if.then, en lugar de nicamente if..then.

Por ejemplo. Supongamos que esta vez queremos aadir la variable season
(estacin del ao) a unos datos que vamos a analizar. Tenemos los meses de
nacimiento de las vacas (variable llamada MONTH). La variable MONTH est
codificada con nmeros, que corresponden a 1 es enero, 2 es febrero, , 12 es
diciembre.

Con los datos anteriores queremos formar la variable season, de tal manera que el
nmero 1 sea primavera, el 2, verano, el 3, otoo, y el 4, invierno.

NOTA: Es ms sencillo manejar datos cuando todas, o casi todas las variables sean
numricas o estn codificadas con nmeros, en lugar de utilizar nombres.

Un cdigo, podra ser:


data season;
set expto.analisis;
if MONTH >2 and MONTH <6 then Season=1;
else if MONTH >5 and MONTH <9 then Season=2;
else if MONTH >8 and MONTH <12 then Season=3;
else Season=4;
run;

De esta manera habremos incluido la variable season a nuestra base de datos.

Introduccin al manejo de datos, utilizando SAS

73

Ifand/or..then
Realiza acciones slo si se cumple una condicin de y (ambas condiciones deben
cumplirse) o de o (una u otra condicin deben cumplirse). Ms de dos condiciones
pueden incluirse en este caso de ifand/orthen.

Por ejemplo, suponemos que queremos una base de datos con todos los borregos
australianos que tengan tanto la identificacin de su padre (SIRE), como la de su
madre (DAM). Un ejemplo de cdigo, sera:
Data= pedigree;
Set austr.allsheep;
If SIRE NE . and DAM NE . then output;
Run;

Adems, ya despus de esta edicin, supongamos que queremos a todos los


borregos de la raza A y de la raza B. El cdigo podra ser:
Data razas;
Set pedigree;
If raza=A or raza=B then output;
Run;

Algunas funciones de SAS


Fechas. Las fechas en SAS, cuando no se encuentran en formato de fecha,
parecen simples nmeros.y siempre (estn en formato de fecha o no) se
comportan como simples nmeros, en cuanto a que se puede sumar o restar una
fecha de otra. Los resultados de estas operaciones corresponden a los das
transcurridos entre una fecha y otra. Esto sucede porque las fechas de SAS son en
realidad los das transcurridos desde el 1 de enero de 1960 hasta la fecha que se
escriba.

Cuando se importan datos de fecha de otro programa hacia SAS, es muy


importante que los datos estn en formato de fecha, para que se traduzcan a las
fechas correctas de SAS. Es muy importante verificar SIEMPRE si se tradujeron las
fechas correctas. Algunas veces al importar fechas, resultan nmeros en SAS. Por
Introduccin al manejo de datos, utilizando SAS

74

ejemplo, supongamos que tenemos las fechas de nacimiento (fechnac) y de parto


(f_parto) de unas hembras, pero estn como simples nmeros, y queremos ver
fsicamente las fechas, para poder corroborar que sean correctas.

Un cdigo que funciona, sera, por ejemplo:


Data cabras;
Set milk.cabras;
FORMAT fechnac MMDDYY8.;
FORMAT f_parto MMDDYY8.;
run;

Mes, ao. En algunas ocasiones se tienen las fechas, pero es conveniente extraerle
el ao y/o el mes. Existen muchas causas por las que esto puede ser importante en
las ciencias agropecuarias. Por ejemplo, el componente hato - ao de nacimiento estacin de nacimiento (llamado herd-year-season o hys en ingls) es casi
indispensable como parte de los modelos de evaluaciones genticas en ganado,
porque es lo que da el componente de contemporaneidad. Para poder crear esta
variable de hys, con frecuencia se tienen que formar las estaciones a partir de los
meses, y extraer los aos a partir de las fechas de nacimiento del ganado.

Como ejemplo, supongamos que de la fecha de nacimiento (Fechnac) queremos


extraer el ao (llamado aqu anho) y el mes (llamado aqu mo). Un cdigo podra
ser:
Data cabras;
Set milk.cabras;
Anho = YEAR(fechnac);
Mo = MONTH(fechnac);
run;

Y listo!

Introduccin al manejo de datos, utilizando SAS

75

Mximos, mnimos y sumatorias. En ocasiones se tiene una serie de variables, de


las cuales quisiramos tener el mximo o el mnimo nmero obtenido, y/o su
sumatoria.

Sumatoria. Por ejemplo, imaginemos que tenemos los datos de pesos de leche
producida por unas borregas y quisiramos conocer el total de la leche producida en
la lactancia.

Los datos de los pesos de la leche se llaman leche1 leche2leche n . Slo para
ilustracin, voy a utilizar slo dos das de la lactancia, a los que voy a llamar b y c.
Un cdigo podra ser:
data look;
input id b c;
cards;
1 2 5
2 2 .
3 2 8
;
run;

*!! Ntese !!!! hay un punto en el dato ausente;

data check;
set look;
add = SUM(of b,c);
run;

y el resultado en work.check es:


1
2
3

Id
1
2
3

b
2
2
2

C
5
.
8

add
7
2
10

Mximos. Ahora supongamos que hay hembras que se tienen que inseminar
muchas veces para quedar preadas. El archivo es una coleccin de fechas
peridicas de muestreo y en algunas fechas, el nmero de veces que se reporta que
la hembra ha sido inseminada, aumenta, porque no qued cargada la vez anterior.
Una vez que la hembra queda cargada, se reporta cuantas veces fue inseminada y la

Introduccin al manejo de datos, utilizando SAS

76

siguiente vez, ya no se reporta nada. Por lo tanto, un archivo tpico se vera, ms o


menos as:
Id
1
2
3
Etc.

Insem1
2
.
2

Insem2
3
1
3

Insem3
.
2
4

Insem4
.
.
.

El cdigo para conocer el nmero mximo de inseminaciones (las que fueron


necesarias para quedar preadas) por hembra, sera:
data ejemplo;
input id insem1 insem2 insem3 insem4;
cards;
1 2
3 . .
2 .
1 2 .
3 2
3 4 .
;
run;

data ej;
set ejemplo;
maxIns = MAX(of insem1, insem2, insem3, insem4);
run;

Mnimos. Si en lugar del nmero mximo, se requiere el mnimo, el proceso es el


mismo, slo que en lugar de escribir MAX(of var1, var2, etc), habra que escribir
MIN(of var1, var2, etc.)

Recomendaciones finales
1.

Siempre verifique los datos que ya se encuentren en su archivo de trabajo,

especialmente si los import de otro programa, como Excel, por ejemplo.


Conviene pedir un proc means para verificar que se encuentren todos los datos
y ver si sus rangos y medias son lgicos.
2.

Si los rangos no son lgicos, puedes/debes pedir un output (con: if.lo

que parece extraothen output) para revisar los datos directamente en un


archivo de prueba.

Introduccin al manejo de datos, utilizando SAS

77

3.

Si se va a trabajar con datos que estn en Excel, y existen problemas

para importar los datos a SAS, verifique que las columnas de Excel tengan el
formato correcto. A veces, cambiar el nombre de las variables por otras mas
cortas sirve. Otras veces, cambiar el formato de guardado del archivo es til,
como guardar como archivo CSV, en vez de archivo de trabajo de Excel.
4.

Antes de efectuar un anlisis o un manejo de datos, siempre crea un

archivo de respaldo y despus haz tus anlisis. Ya una vez que tengas el
archivo como lo desees, puedes cambiarle el nombre al archivo de trabajo para
que substituya a la versin respaldada que tenas antes de las modificaciones.
Tambin puedes crear un archivo de prueba, con unos cuantos datos ficticios,
slo para verificar que SAS est haciendo lo que tu/usted espera(s) que haga.
5.

Hay casi una infinidad de sitios web que te pueden ayudar a resolver

dudas de cmo efectuar algn trabajo en SAS. Sin embargo, la mayora estn
en ingls, pero no hay que desanimarse. Si no sabe ingls, busque de todas
maneras, pues los sitios en espaol son cada vez ms comunes.
6.

Muchas veces, la edicin de datos es ms fcil hacerla en Excel, y

despus importar a SAS, pero ya con prctica, editar en SAS se vuelve muy
conveniente.

Introduccin al manejo de datos, utilizando SAS

78

CAPTULO 10

Algunos cdigos de estadstica

SAS ofrece una variedad enorme de procedimientos estadsticos para ser utilizada
en todo tipo de investigacin aplicada, como la que generalmente se requiere en las
ciencias agropecuarias. La gama cubre desde anlisis categrico, multivariado, de
modelos de riesgo o sobrevivencia, regresin, anlisis de modelos mixtos, pruebas
no paramtricas, apoyo para simulaciones, y mucho ms. Constantemente se hacen
mejoras a los programas.
Sin embargo, los modelos ms importantes en investigacin agropecuaria, siguen
siendo los de la familia de los modelos lineales, que en SAS se cubren
principalmente con los procedimientos GLM, REG y MIXED. En este documento se
presenta una muy breve y somera descripcin de los cdigos bsicos ms sencillos
utilizando esos tres procedimientos; adems se incluyen ejemplos de cdigos de los
procedimientos Univariate, Corr, y GLM para anlisis multivariado.
Cada uno de los procedimientos tiene un respaldo terico muy extenso, y su buen
uso requiere un profundo entendimiento de las bases y de los mbitos de aplicacin
correctos. Las bases son generales, y son: aleatorizacin, control del error (por
homogenizacin y/o bloqueo) y multiplicidad de repeticiones. Estos u otros conceptos
no van a ser explicados aqu; simplemente se mencionan para tratar de hacer
conciencia de la responsabilidad que le compete al usuario de un programa de
anlisis estadstico. Tampoco se van a explicar los reportes (el contenido del
Output) que se obtienen cuando se ofrece la presentacin de alguna corrida de un
ejemplo de cdigo. La razn es porque slo aquel que ya sabe que es lo que
significan, podr apreciar su valor y es quien deber/va a usarlos de todas maneras.

Introduccin al manejo de datos, utilizando SAS

79

Si se quisiera seguir el (muchas veces tortuoso) camino del autodidacta, hay muchos
libros dedicados especficamente a los procedimientos de SAS arriba mencionados;
por ejemplo: SAS for mixed models (2006) por Littell et al., Survival anlisis using
SAS. A practical guide (1995) por Allison, Categorical data analysis using the SAS
system (2006) por Stokes et al., SAS system for regression (2006) por Freund and
Littell, Applied multivariate statistics with SAS software (2006) por SAS publishing, y,
el clsico, SAS for linear models (2002) por Littell et al.
Los resultados de los anlisis siguientes salen en la ventana del Output. Se
recomienda copiar y pegar en Word, para su ulterior inspeccin.

Proc glm
Es para modelos lineales generales, incluyendo ANOVA, regresin y anlisis de
covarianza. Maneja correctamente los datos desbalanceados en el ANOVA (los
datos estn desbalanceados cuando los niveles de las variables independientes
tienen tamaos desiguales).
La orden CLASS se usa para designar las variables que son factores en el modelo.
Las variables en CLASS pueden ser numricas o clasificatorias. Si no se incluye
CLASS, PROC GLM supondr que las variables independientes designadas en
MODEL son numricas y calcular un modelo de regresin en lugar de un modelo de
ANOVA.
La orden MODEL tiene la forma: variable dependiente = factor(es), que son sinnimo
de variables clasificatorias, de variables independientes, o de efectos.
La orden MEANS pide comparaciones mltiples. Despus de la palabra MEANS se
deben enlistar todas las variables clasificatorias para las que se deseen
comparaciones mltiples.

Introduccin al manejo de datos, utilizando SAS

80

Nota: En lugar de MEANS, se debe utilizar LSMEANS cuando los datos estn
desbalanceados. Por esta razn, si un estudio no proviene de un diseo, sino que es
observacional (por ejemplo), ser necesario siempre usar LSMEANS.
Un cdigo de glm debe contener el nombre del archivo a analizar (DATA), el modelo
con el que se va a analizar (MODEL) y la orden de ejecutar el programa (RUN). El
cdigo de glm puede contener otras instrucciones, por ejemplo:
Proc GLM Data = nombre_del_archivo opciones;
CLASS variable(s);
*Si no se incluyen variables clasificatorias, es decir, si no se incluye la palabra
CLASS, el modelo ser de regresin;
*Si alguna variable aparece en MODEL como efecto, pero no se incluy entre las
variables clasificatorias, esa variable se tomar como covariable;
MODEL variable(s)_dependiente(s) = efecto(s);
* Despus de MODEL pueden ir opciones acerca de que se desea ver en el Output.
Lo ms comn es pedir lsmeans y stderr (least squares means y standard error) en
estudios observacionales;
* Si se escribe ms de una variable dependiente, pero el formato de cdigo no
corresponde a Multivariado, entonces SAS hace tantos anlisis univariados como
variables dependientes se escriban. Esto es til para no tener que repetir el mismo
cdigo para diferentes variables dependientes;
Run;
Una vez ms, PROC GLM para datos balanceados, en forma general:
PROC GLM data = base_de_datos;
CLASS variables;
MODEL variable dependiente = variables independientes;
MEANS efectos /opciones; *Ver Cuadro 1;
ESTIMATE efectos/ opciones;
RUN; *En lugar de Estimate se puede pedir CONTRAST;

La orden ESTIMATE calcula el estimador puntual y el error estndar para una


combinacin lineal de los parmetros en el modelo.

Introduccin al manejo de datos, utilizando SAS

81

NOTA: En las ordenes ESTIMATE Y CONTRAST, SAS supone que los niveles de
las variables clasificatorias estn en orden alfabtico (lo que se consigue si se
ordenan con proc sort), sin importar el orden en que realmente estn los datos!
Si los niveles son numricos, va a suponer que estn en orden ascendente.
Ejemplo: Un experimento con un factor:
Data ejemplo;
input

factor $;

cards;
3 bajo
4 bajo
4 bajo
5 bajo
6 medio
7 medio
4 medio
3 alto
3 alto
6 alto
;
run;
proc glm;
class factor;
model y = factor;
estimate 1 0 -1;
run;
Supongamos que se requiere que se estime la diferencia "bajo alto (y suponemos
que el orden debe ser como se escribi en SAS: bajo, medio y alto, para 1, 0 y -1,
respectivamente), pero lo que realmente sucede es que SAS estima la diferencia

Introduccin al manejo de datos, utilizando SAS

82

"alto medio (porque en orden alfabtico tenemos alto, bajo, medio, y en este
caso, alto corresponde al 1, bajo al 0, y medio al -1).
Para obtener resultados correctos de ESTIMATE, se deben tener las variables en
orden alfabtico (es decir, pedir un PROC SORT por la variable a analizar), o
considerar este detalle al momento de escribir el cdigo.
Algunas de las opciones que se pueden usar con MEANS (Recuerde: MEANS
efectos/opciones) estn en el Cuadro 1:

CUADRO 1. ALGUNAS OPCIONES DE Means CON EL PROCEDIMIENTO GLM.


Opcin de Means

Descripcin

alpha = p

Es el nivel de significancia que se usa en las comparaciones mltiples.


El default es 0.05.

bon

Pide los t-tests de Bonferroni entre medias.

Pide pruebas t-tests.

duncan

Opcin para pedir la prueba de comparaciones mltiples de Duncan.

scheffe

Opcin para pedir la prueba de comparaciones mltiples de Scheffe.

snk

Pide la prueba de rango mltiple de Student-Newman-Keuls.

lsd

Con esta opcin se realizan t-tests apareadas.

tukey

Realiza la prueba de rango student de Tukey.

Un ejemplo de cdigo para un estudio con datos no balanceados:


proc glm data= my_data;
class var1 var2 var3 var4;
model VAR_DEP = Var1(Var2)

Var3

Var3*Var4;

random Var1(Var2);
lsmeans Var3*Var4/stderr;
run;

Aqu se est ilustrando:


a) el uso de efectos anidados: Var1(Var2),
b) el uso de la declaracin de efectos aleatorios (orden random), y
c) la inclusin de una interaccin (Var3*Var4).

Introduccin al manejo de datos, utilizando SAS

83

Proc mixed
Se usa en modelos lineales mixtos. El cdigo es:
PROC MIXED DATA = nombre.archivo;
class Var1 Var2 Var3;
model Dep_Var = Var1 Var2 Var1*Var2/opciones;
random Var3;
run;
* Por supuesto, las opciones son... opcionales! ;
* Antes de Run, generalmente se piden los least squares means (Lsmeans) de
los efectos de inters;
* Ntese que la variable aleatoria (la que se indica con RANDOM) no est
dentro del modelo. Esto es una diferencia con proc glm;

Proc univariate
Para estadsticas descriptivas: rango y percentiles, con o sin grfica. El cdigo es:
PROC UNIVARIATE DATA = nombre;
var variable_de_inters; *Si no se escribe esto, se dan resultados para cada
una de las variables;
OPCIONES;
run;
Para ilustrar el tipo de datos que se obtienen con un proc univariate simple, vamos a
pedir esta opcin para la siguiente base de datos:
DATA ST4;
INPUT LGT OTHER PCM
DATALINES;
350
400
1516.8
850
800
2266.6
1200 1100 2189.2
1700 1600 2773.4
2900 2800 3535.8
450
500
1402.4
600
600
1673.0
900
800
2146.6
1600 1500 2243.2
2000 1800 3128.0
400
400
1543.2
750
650
1847.8

PDM ACTUAL;
5.0
8.0
9.0
13.0
18.5
5.0
7.5
9.0
10.5
18.0
4.5
7.0

656
1382
1666
2392
3901
293
1019
1746
2216
3829
536
1382

Introduccin al manejo de datos, utilizando SAS

84

1500
2000
3000
500
800
1400
1850
2800
400
850
1100
1800
2800
400
750
1200
1800
3200
;
run;

1500
1800
2800
500
800
1500
1700
2500
350
500
900
1800
2500
350
700
1200
2000
3100

2304.6
2762.8
3664.6
1447.0
2123.6
2453.0
2883.4
2862.6
1214.8
1707.4
2272.6
2576.8
3178.2
1414.8
1762.8
1864.8
2578.2
3341.0

9.5
12.0
16.5
3.5
8.0
11.0
10.5
16.0
5.5
7.0
9.0
11.0
16.5
5.0
6.5
7.0
11.5
17.0

1706
3522
3506
1019
1382
2069
3386
5402
616
979
2029
2699
4192
656
1342
1746
3382
4552

proc univariate data=ST4;


Options nodate;
run;

TheUNIVARIATEProcedure
Variable:LGT

Moments

N30SumWeights30
Mean1395SumObservations41850
StdDeviation871.71551Variance759887.931
Skewness0.68529167Kurtosis0.6015925
UncorrectedSS80417500CorrectedSS22036750
CoeffVariation62.4885671StdErrorMean159.15275

BasicStatisticalMeasures

LocationVariability

Mean1395.000StdDeviation871.71551
Median1200.000Variance759888
Mode400.000Range2850
InterquartileRange1100

TestsforLocation:Mu0=0

TestStatisticpValue

Student'stt8.765164Pr>|t|<.0001
SignM15Pr>=|M|<.0001
SignedRankS232.5Pr>=|S|<.0001

Quantiles(Definition5)

QuantileEstimate

Introduccin al manejo de datos, utilizando SAS

85

100%Max3200
99%3200
95%3000
90%2850
75%Q31850
50%Median1200
25%Q1750
10%400
5%400
1%350
0%Min350

TheUNIVARIATEProcedure
Variable:LGT

ExtremeObservations

LowestHighest

ValueObsValueObs

3501280020
40026280025
4002129005
40011300015
4506320030

NTESE, AHORA VIENE LA MISMA INFORMACIN PARA LA SIGUIENTE


VARIABLE:

TheUNIVARIATEProcedure
Variable:OTHER

Moments

N30SumWeights30
Mean1315SumObservations39450
StdDeviation826.307741Variance682784.483
Skewness0.65415863Kurtosis0.649187
UncorrectedSS71677500CorrectedSS19800750
CoeffVariation62.8370906StdErrorMean150.862463

para la variable OTHER y lo mismo para cada una de las otras tres.
Ahora, se pide lo mismo, pero slo para una de las variables, y con diagrama:
proc univariate plot data=ST4;
var actual;
histogram / normal;
run;

El resultado es el siguiente:
TheUNIVARIATEProcedure
Variable:ACTUAL

Moments
Introduccin al manejo de datos, utilizando SAS

86


N30SumWeights30
Mean2173.43333SumObservations65203
StdDeviation1358.44738Variance1845379.29
Skewness0.65598565Kurtosis0.4957413
UncorrectedSS195230373CorrectedSS53515999.4
CoeffVariation62.5023717StdErrorMean248.017425

BasicStatisticalMeasures

LocationVariability

Mean2173.433StdDeviation1358
Median1746.000Variance1845379
Mode1382.000Range5109
InterquartileRange2367

TestsforLocation:Mu0=0

TestStatisticpValue

Student'stt8.763228Pr>|t|<.0001
SignM15Pr>=|M|<.0001
SignedRankS232.5Pr>=|S|<.0001

Quantiles(Definition5)

QuantileEstimate

100%Max5402.0
99%5402.0
95%4552.0
90%4046.5
75%Q33386.0
50%Median1746.0
25%Q11019.0
10%636.0
5%536.0
1%293.0
0%Min293.0

TheSASSystem

TheUNIVARIATEProcedure
Variable:ACTUAL

ExtremeObservations

LowestHighest

ValueObsValueObs

2936382910
5361139015
61621419225
65626455230
6561540220

StemLeaf#Boxplot
541|
461|
421|
355894|
3442++
271||

Introduccin al manejo de datos, utilizando SAS

87

201244|+|
177774**
100034447++
056774|
031|
++++
MultiplyStem.Leafby10**+3

NormalProbabilityPlot
5250+*++++
|*+++
|*+++
|***+*+
|**++
2750+++*+
|++****
|++***
|*****
|***++*
250+*+++
+++++++++++
210+1+2

TheSASSystem

TheUNIVARIATEProcedure
FittedDistributionforACTUAL

ParametersforNormalDistribution

ParameterSymbolEstimate

MeanMu2173.433
StdDevSigma1358.447

GoodnessofFitTestsforNormalDistribution

TestStatisticpValue

KolmogorovSmirnovD0.15681903Pr>D0.059
CramervonMisesWSq0.13565870Pr>WSq0.036
AndersonDarlingASq0.75871079Pr>ASq0.044

QuantilesforNormalDistribution

Quantile
PercentObservedEstimated

1.0293.000986.7878
5.0536.00061.0138
10.0636.000432.5130
25.01019.0001257.1745
50.01746.0002173.4333
75.03386.0003089.6922
90.04046.5003914.3537
95.04552.0004407.8804
99.05402.0005333.6545

Introduccin al manejo de datos, utilizando SAS

88

Las explicaciones del significado de los reportes pueden ser consultados en la


literatura que dimos al principio, o va Internet en cualquier buscador.
Algunas opciones de PROC UNIVARIATE (despus de cada uno, escribir las
variables) se encuentran en el Cuadro 2.

CUADRO 2. ALGUNAS OPCIONES A USAR CON EL PROCEDIMIENTO Univariate


Opcin de proc univariate

Descripcin

By

Calcula estadsticas separadas por cada grupo


determinado por BY (requiere que estn en orden
descendente).

Freq

Especifica una variable para contener la frecuencia de


observaciones.

Histogram

Crea una grfica (nunca es muy buena la calidad de las


grficas de SAS) del histograma de una variable.

ID

Especifica los valores extremos de una o ms variables.

VAR

Selecciona las variables a analizar. En ese orden van a


aparecer en el reporte (output).

Proc reg
Anlisis de regresin (cuadrados mnimos ordinarios).
PROC REG usa la orden MODEL para definir el modelo terico de la relacin entre
las variables independientes y dependiente. Es posible tener ms de una orden de
MODEL (esto es til cuando se est tratando de encontrar el modelo que mejor se
ajusta a los datos).
Si usted necesita usar los valores que se hayan creado de la regresin (tales como
valores predichos, residuales, etc.) para otros propsitos adems de grficas, se
puede definir una nueva base de datos que contenga estos valores. Use el comando
OUTPUT OUT = nombre de la nueva base de datos.
Se pueden efectuar pruebas de F parciales para determinar si una o ms variables
son (simultneamente) cero usando la orden TEST. Si usted quiere realizar una

Introduccin al manejo de datos, utilizando SAS

89

prueba, escriba: TEST var = 0; Si quiere realizar dos pruebas, escriba: TEST var1 =
0 var2 = 0, etc.

La forma general es:


PROC REG DATA = Nombre_del_archivo opciones;
MODEL Variable(s))_dependiente(s) = regresores
/ opciones;
TEST var1=0 var2=0;
PLOT yvariable*xvariable <=symbol> </options>; *Ver Cuadro3;
OUTPUT OUT=new name;
Run;

*lo que est en color violeta es opcional

tambin;

Una lista de algunas de las opciones que se pueden solicitar para incluirse en una
grfica (que se pide con PLOT) se muestra en el Cuadro 3.
CUADRO

3.

ALGUNAS

OPCIONES

DE

LA

INSTRUCCIN

PLOT

EN

EL

PROCEDIMIENTO REG.
Opciones de Plot

Descripcin

Imprime el valor observado de la variable dependiente, el valor


predicho (P.) y el residual (R.) para cada observacin en la base
de datos *

Imprime lo mismo que la orden P ms los errores estndares de


los valores predichos y residuales, los residuales estudentizados
(STUDENT.), y el estadstico D de Cook.

Clm

Imprime intervalos de confianza del 95% para la media de cada


observacin.

Cli

Imprime intervalos de prediccin del 95% para la media de cada


observacin.

alpha = p

Especifica el nivel de confianza. El default es 0.05.

influence

Pide residuales, residuales estudentizados, valores de


leverage (sesgo), tasas de covarianza, diferenciales de ajuste,
y diferencias en las betas

cp

Calcula la estadstica CP de Mallow para cada modelo


seleccionado.
* Ntese que el punto (.) es parte del nombre de la variable: P., R., Student.

Introduccin al manejo de datos, utilizando SAS

90

Para presentar un ejemplo de la informacin que reporta SAS para Proc Reg,
utilizamos nuevamente la misteriosa base de datos que vimos para proc univariate.
Se va a correr nicamente un modelo de regresin lineal simple:
PROC REG data =ST4;
options nodate nocenter;
MODEL LGT = ACTUAL/P;
RUN; QUIT;

TheSASSystem3

TheREGProcedure
Model:MODEL1
DependentVariable:LGT

NumberofObservationsRead30
NumberofObservationsUsed30

AnalysisofVariance

SumofMean
SourceDFSquaresSquareFValuePr>F

Model11978632819786328246.18<.0001
Error28225042280372
CorrectedTotal2922036750

RootMSE283.49994RSquare0.8979
DependentMean1395.00000AdjRSq0.8942
CoeffVar20.32258

ParameterEstimates

ParameterStandard
VariableDFEstimateErrortValuePr>|t|

Intercept173.4393398.860820.740.4638
ACTUAL10.608050.0387515.69<.0001

TheSASSystem4

TheREGProcedure
Model:MODEL1
DependentVariable:LGT

OutputStatistics

DependentPredicted
ObsVariableValueResidual

1350.0000472.3215122.3215
2850.0000913.767363.7673
312001086113.5459
417001528172.1001

Introduccin al manejo de datos, utilizando SAS

91

529002445454.5495
6450.0000251.5986198.4014
7600.0000693.044493.0444
8900.00001135235.0983
916001421179.1172
1020002402401.6708
11400.0000399.35520.6448
12750.0000913.7673163.7673
1315001111389.2238
1420002215214.9988
1530002205794.7301
16500.0000693.0444193.0444
17800.0000913.7673113.7673
181400133168.5009
1918502132282.3037
2028003358558.1367
21400.0000447.999447.9994
22850.0000668.7223181.2777
2311001307207.1770
241800171585.4281
2528002622177.6063
26400.0000472.321572.3215
27750.0000889.4452139.4452
281200113564.9017
2918002130329.8715
3032002841358.7076

SumofResiduals0
SumofSquaredResiduals2250422
PredictedResidualSS(PRESS)2769198

Para seleccionar el modelo de regresin mltiple ms adecuado


Si se desea obtener informacin para tratar de seleccionar el mejor modelo de
regresin, se puede utilizar Proc RSQUARE (que calcula la R2 utilizando todas las
combinaciones de las variables especificadas) o Proc STEPWISE (que mete y saca
variables al modelo, para ver como se comportan en presencia o ausencia de las
otras variables), con la misma estructura de cdigo:
PROC RSQUARE data=nombre; *alternativamente, Proc Stepwise;
MODEL y = x1 x2 x3 x4;
run;
Proc Stepwise efecta seleccin de modelos de regresin. El valor de default es
0.5 para alpha entry (el para que entre la variable a verificar) y 0.15 para alpha stay (el
para que se quede la variable). Se pueden aadir las opciones SLE para
seleccionar el valor deseado para alpha entry y/o SLS para seleccionar el valor
deseado para alpha stay .

Introduccin al manejo de datos, utilizando SAS

92

Alternativamente, con el cdigo de Proc Reg se puede solicitar alguna opcin que
ayude a seleccionar el modelo de regresin. Esto se hace aadiendo la opcin
SELECTION = option despus de MODEL, de la siguiente manera:
Proc Reg data = Nombre;
Model

Y = x1 x2 x3 ...xn/SELECTION = RSQUARE;

Run;
Desde luego, Y representa el nombre de la variable dependiente y las X1...Xn el
nombre de las variables independientes.
Otras opciones para SELECTION, adems de RSQUARE, son:
Stepwise

Realiza la regresin stepwise (las variables entran y/o salen paso a


paso).

Forward

Realiza la seleccin forward (las variables entran una a una).

Backward

Realiza la seleccin backward (del modelo completo, las variables se


van eliminando o quedando- una a una).

MAXR

Selecciona el modelo usando la mxima mejora en R2.

Proc corr
Este procedimiento sirve para obtener una matriz de correlaciones entre las
variables. Este procedimiento calcula el coeficiente de correlacin de Pearson y
produce estadsticas descriptivas media, desviacin estndar, mnimos y mximos
para todas las variables de par en par, enlistadas en la orden VAR. Tambin
calcula un p-value para probar si la correlacin verdadera entre las dos variables es
cero. La orden WITH puede usarse para reducir el nmero de coeficientes de
correlacin que se computen; en este caso, los pares de variables provienen de
aquellas enlistadas en la orden VAR cruzados con las enlistadas en la orden WITH.
Ejemplo:
proc corr data= nombre;
var var1 var2 var3;

Introduccin al manejo de datos, utilizando SAS

93

*va a dar la matriz de correlaciones, de par en par, para estas variables,


as como su nivel de significancia;
run;

PROC CORR data = nombre_del_archivo opciones; *Ver Cuadro 4;


VAR variables;
WITH variables;
OPCIONES DE PROC CORR;
RUN;
Una lista de las opciones que se pueden utilizar con Proc corr se encuentra en el
Cuadro 4.
CUADRO 4. ALGUNAS OPCIONES QUE SE UTILIZAN CON EL PROCEDIMIENTO CORR.
Opciones de PROC CORR

Descripcin

Cov

Imprime la matriz de covarianzas

nosimple

Suprime la impresin de las estadsticas descriptivas

noprob

Suprime la impresin de los valores de prob (p-values)

Proc glm para anlisis de varianza multivariado


Ejemplo de cdigo en donde se tienen dos variables dependientes (Fertilid y
Prod_total) y tres variables independientes (Region, Raza, y Estacion). Se
estn probando los efectos de las interacciones con un MANOVA o anlisis de
varianza multivariado:
PROC GLM data=archivero.archivo;
class Region Raza Estacion;
model Fertilid Prod_total = Region Estacion Raza*Region
Raza*Estacion;
manova h=Raza*Region;
manova h=Raza*Estacion:
run;

Introduccin al manejo de datos, utilizando SAS

94

Otras rdenes bsicas


Where en proc means
En el procedimiento means, se puede insertar la orden where para delimitar las
caractersticas del grupo de observaciones a las que se les van a extraer las
estadsticas descriptivas.
Por ejemplo, para extraer las estadsticas de vacas que produzcan ms de 25 litros
de leche por da:
proc means data =vacas

n mean median std var;

where leche > = 25;


var edad

Intparto leche ;

run;

Proc boxplot
Se usa proc boxplot para obtener grficos de bigotes. Por ejemplo, para la variable
leche por niveles de region. Esto requiere que los datos s ordenen por region con
proc sort.

proc sort data=vacas;


by region;
run;

proc boxplot data=vacas;


plot leche*region / boxstyle=schematic boxwidth=10;
run;

Prueba de Chi-cuadrada con proc freq


Para efectuar la prueba de chi-cuadrada y obtener las frecuencias esperadas:
proc freq data=nombre;
table variable1*variable2/chisq expected;
run;
Introduccin al manejo de datos, utilizando SAS

95

Introduccin al manejo de datos, utilizando SAS

96

CAPTULO 11

Algunos cdigos de diseos experimentales

En este ltimo captulo se ofrece una lista de cdigos que normalmente se utilizan en
diseos experimentales (Hinkelmann y Kempthorne, 1994). El procedimiento a
utilizarse para este propsito es proc glm (tambin podran escribirse exactamente
igual para proc anova), con inicio y trmino del cdigo tal como se describi en el
Captulo 10, es decir, todos los cdigos empiezan con PROC GLM DATA =
NOMBRE;, y finalizan con RUN;. Para utilizar correctamente estos cdigos, como
en el captulo anterior, tambin se requiere de un slido respaldo en estadstica.

Las abreviaturas que se van a utilizar son:


Tratamiento = Trt =
Repeticin = Rep
Bloque = Bl =
Variable de respuesta = Y
Hilera =
Columna =
Error experimental =
Error observacional =

1. Diseo completamente al azar


Sencillo:
Y ij = + i + ij
CLASS Trt;
MODEL Y=Trt;

Introduccin al manejo de datos, utilizando SAS

97

Con submuestreo:
Y ijk = + i + ij + ijk
donde ij representa el error experimental, y ijk representa el error observacional.
CLASS Trt Rep;
MODEL Y = Trt
TEST H = Trt

Rep(Trt);
E = Rep(Trt);

De esta manera se prueba Ho: Treat1 = Treat2 = = Treatn , y se especifica que las
unidades experimentales, es decir, las repeticiones se encuentran anidadas dentro
de los tratamientos, por lo que Rep(Trt) es una descripcin del componente error
experimental, ij .
2. Comparacin de tratamientos
Los cdigos son iguales tanto para CONTRAST, como para ESTIMATE. Se recuerda
que los coeficientes deben de sumar cero.

Por ejemplo, utilizando contrastes para tres tratamientos:


CLASS Trt;
MODEL Y= Trt;
CONTRAST C1
Trt

-1

-1;

-1;

1;

CONTRAST C2
Trt

CONTRAST C3
Trt

-1

Cuando se pueden utilizar polinomios ortogonales, tambin se pueden obtener


tendencias de efectos lineales, cuadrticos, cbicos, etc., siempre y cuando haya por
lo menos dos, tres, cuatro, etc. tratamientos, respectivamente. Por ejemplo, para
cuatro tratamientos obtenemos las sumas de cuadrados para efectos lineales,
Introduccin al manejo de datos, utilizando SAS

98

cuadrticos, y cbicos, utilizando exactamente los coeficientes como se muestran a


continuacin:
CLASS Trt;
MODEL Y=Trt;
CONTRAST Trt Lineal
Trt

-3

-1

3;

CONTRAST Trt Cuadratico


Trt

-1

-1

1;

-3

1;

CONTRAST Trt Cubico


Trt

-1

La disposicin de los coeficientes no es aleatoria para la determinacin de las


diferentes tendencias. Por ejemplo, los coeficientes para tres tratamientos que
prueban las tendencias lineal y cuadrtica, son:
Lineal:

-1

Cuadrtica: 1

-2

Para ms de tres cuatro tratamientos (cuyos coeficientes se ofrecieron aqu), se


deber consultar un buen libro de estadstica para obtener los coeficientes que se
necesiten.

3. Comparaciones mltiples
El cdigo es el mismo para cualquier prueba de comparacin. Por ejemplo, para
utilizar Duncan:
CLASS Trt;
MODEL Y=Trt;
MEANS Trt/DUNCAN;

4. Diseo de bloques completos al azar


Sencillo:
Introduccin al manejo de datos, utilizando SAS

99

Y ijk = + i + j + ijk
CLASS Bl Trt;
MODEL Y=Bl Trt;
MEANS Trt;

Con submuestreo:
Y ijk = + i + j + ij +
CLASS Bl

ijk

Trt;

MODEL Y = Bl Trt
TEST H = Trt

Bl*Trt;

E = Bl*Trt;

MEANS Trt;

5. Diseo de bloques al azar generalizados


Y ijk = + i + j + ij + ijk
CLASS Bl

Trt;

MODEL Y = Bl

Trt

BL*Trt;

MEANS Trt BL*Trt;

6. Diseo de bloques incompletos, incluyendo el diseo de bloques completos


al azar con observaciones perdidas
Y ijk = + i + j + ijk
CLASS

Bl

Trt;

MODEL Y = Bl Trt;
LSMEANS Trt;

Introduccin al manejo de datos, utilizando SAS

100

7. Diseo de cuadro latino


Y ijkl = + i + j + k + ijkl
CLASS

Hilera Columna

Trt;

MODEL

Y = Hilera Columna Trt;

8. Diseo de cuadro latino con repeticiones


Para: Y ijk(l) = + i + j + k + l + ijk(l)
CLASS Rep Hilera Columna

Trt;

MODEL Y = Rep Hilera Columna Trt;


Para: Y ijk(l) = + i + ij + k + l + ijk(l)
CLASS Rep Hilera Columna

Trt;

MODEL Y = Rep Hilera(Rep) Columna Trt;


Para: Y ijk(l) = + i + ij + ik + l + ijk(l)
CLASS Rep Hilera Columna

Trt;

MODEL Y = Rep Hilera(Rep) Columna(Rep) Trt;


9. Diseo de parcelas divididas (ejemplos)
El superndice A indica que el efecto corresponde al factor A, mientras que un
superndice B indica que corresponde al factor B.
Para un diseo de factor A completamente al azar y factor B en bloques completos al
azar:
Y ijk = + i + A ij + k + () ik + B ijk
CLASS

SUJETO

MODEL

TEST H = A

B;

SUJETO(A) B A*B;
E = SUJETO (A);

Introduccin al manejo de datos, utilizando SAS

101

Para un diseo de factor A en bloques completos al azar y factor B en bloques


completos al azar:
Y ijk = + ri + j + A ij + k + () ik + B ijk
donde r es el nmero de bloques.

CLASS

REP A

B;

MODEL

Y = REP

TEST

H=A

E = REP*A;

REP*A

A*B;

Esto ultimo para obtener un valor de F que pruebe Ho: 1 = 2 = = a

Para un diseo de factor A completamente al azar y factor B en cuadro latino:


Y ijk(l) = + i + A ij + k + l + () il + () ik +B ijk(l)
CLASS

Sujeto Orden A B;

MODELO

A Sujeto(A)

TEST H = A

Orden

A*B

A*Orden,

E = Sujeto(A);

Para un diseo de factor A en cuadro latino y factor B en bloques completos al azar:


Y ijkl = + i + j + k + A ijk + l + () kl + B ijkl
CLASS

Hilera

TEST H = A

Columna

Hilera*Columna*A

A*B;

E = Hilera*Columna*A;

Para un diseo de parcela dividida, tal que:


Y ijk = + ri + j + A ij + k + B ik + () jk AB ijk
CLASS

Rep

B;

MODEL

Y = Rep

TEST

H=A

E = Rep*A;

TEST

H=B

E = Rep*B;

Rep*A

Rep*B

A*B;

Introduccin al manejo de datos, utilizando SAS

102

Eso fue todo


Quisiera insistir en que si no se tienen bases firmes en estadstica, se busque el
apoyo tcnico de un profesional desde la planeacin del experimento o estudio, se
tomen en cuenta sus opiniones durante el seguimiento de los trabajos, y que los
anlisis se realicen bajo un consenso entre el investigador o grupo de investigadores
y el profesional de apoyo estadstico. !!Buena suerte!! *

Se han hecho todos los esfuerzos porque la informacin y los cdigos sean correctos. Sin
embargo, es posible que exista algn error de imprenta o que las versiones de SAS
cambien en sus requerimientos de codificacin, por lo que no nos hacemos responsables de
que todos y cada uno de los cdigos funcionen.
Introduccin al manejo de datos, utilizando SAS

103

APNDICE
BASE DE DATOS DE UN EXPERIMENTO DE MAZ
EVALUACIN DE GENOTIPOS DE MAZ
Trat. Rep. IAF ALTP
No
No
i
cm
1
1 3.97 249
1
2 4.84 252
1
3 6.13 254
1
4 5.11 249
2
1
3.7 266
2
2 5.05 258
etc. etc. etc.
7
2 4.13 247
7
3 3.61 258
7
4 5.48 250

ALTM
cm
127
129
132
121
143
129
164
164
151

NoH
No
14
14
13
13
14
14

RTFF
kg/ha
53125
54167
56250
51042
55208
47917

RTFS
kg/ha
13252
15553
15251
12728
14441
10885

RFSH
kg/ha
2916
3083
3273
2784
2462
3272

RFST RFSM RH:T RH:M


kg/ha kg/ha r
r
4990 4906 58 59
5928 5535 52 56
5764 5598 57 58
4600 4000 61 70
6750 6380 36 39
7646 6812 43 48

13 58333 15725 2826 6438 4760


14 54167 13324 2908 6802 5119
13 58333 15370 2440 6384 4126

44
43
38

59
57
59

RT:M
r
102
107
103
115
106
112
135
133
155

IAF ndice de rea foliar


ALTP altura de la planta
ALTM altura de la mazorca
NoH nmero de hojas
RTFF rendimiento total de forraje fresco (kg/ha)
RTFS rendimiento total de forraje seco (kg/ha)
RFSH rendimiento forraje seco de hoja (kg/ha)
RFST rendimiento forraje seco de tallo (kg/ha)
RFSM rendimiento forraje seco de mazorca (kg/ha)
RH:T relacin hoja:tallo
RH:M relacin hoja:mazorca
RT:M relacin tallo:mazorca
(Datos parciales no publicados, utilizados con permiso del autor: Lpez-Guerrero, 2006)

Introduccin al manejo de datos, utilizando SAS

104

LITERATURA CITADA
Allison, P. D. 1995. Survival analysis using SAS. A practical guide. Cary, NC: SAS
Institute Inc.
Delwiche, L. D. and Slaughter, S. J. 2000. The little SAS book: A primer. 2nd Ed. Cary,
NC: SAS Institute Inc.
Freund, R. and Littell, R. C. 2000. SAS System for regression. 3rd Ed. New York,
Chichester, Brisbane, Toronto, Singapore. Wiley Series in Probability and
Statistics.

Hinkelmann, K. and Kempthorne, O. 1994. Design and analysis of experiments. Vol


1. Introduction to experimental design. New York, Chichester, Brisbane,
Toronto, Singapore. Wiley Interscience.

Khattree, R. and Naik, D. N. 1999. Applied multivariate statistics with SAS software.
2nd Ed. Cary, NC: SAS Institute Inc.

Littell, R., Milliken, G. A., Stroup, W. W. and Wolfinger, R. D. 2006. SAS for mixed
models. 2nd Ed. Cary, NC: SAS Institute Inc.

Littell, R., Stroup, W. W. and Freund, R. 2002. SAS for linear models. Cary, NC: SAS
Institute Inc.

Lpez-Guerrero I. 2006. Compendio an no publicado de experimentos sobre


rendimiento de forraje de maces en el Estado de Veracruz, realizados en
1999.

Stokes, M. E., Davis, C. S. and Koch, G. E. 2001. Categorical data analysis using the
SAS system. Cary, NC: SAS Institute Inc.

Introduccin al manejo de datos, utilizando SAS

105

RECONOCIMIENTOS

El material que se presenta ha sido recopilado en gran parte del sitio de internet del
Insituto SAS: www.sas.com, de la pgina (ya no disponible) del Dr. Oliver
Schabenberger* y de varios libros, entre los que destaca: The Little SAS Book, 2
edicin, por Lora D. Delwiche y Susan J. Slaughter, y en el uso y prctica del
programa SAS.

Actualmente el Dr. Schabenberger labora en el desarrollo y mejora de programas de


SAS/STAT en el Instituto SAS, en Carolina del Norte.
Introduccin al manejo de datos, utilizando SAS

CRDITOS EDITORIALES

COORDINADOR DE PRODUCCIN
Vicente E. Vega Murillo

COORDINADOR DEL COMIT EDITORIAL


Valentn A. Esqueda Esquivel

EDICIN
Valentn A. Esqueda Esquivel

FORMACIN
Claudia Perdomo Montes

REVISIN TCNICA
Isaac Meneses Mrquez
Rubn Loeza Limn
Bertha L. Rueda Maldonado
ngel Ros Utrera
Alfonso vila Durn
Julio C. Vinay Vadillo

Introduccin al manejo de datos, utilizando SAS

INTRODUCCIN AL MANEJO DE DATOS


UTILIZANDO SAS
No est permitida la reproduccin total o parcial de esta publicacin, ni la transmisin
de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, fotocopia, por
registro u otros mtodos, sin el permiso previo y por escrito de la institucin.
Instituto Nacional de Investigaciones Forestales, Agrcolas y Pecuarias.
Av. Progreso Nm. 5
Barrio Santa Catarina, Del. Coyoacn
04010, Mxico, D.F.
Tel.: (55) 38 71 87 00

Primera edicin 2009


Impreso en Mxico.
ISBN 978-607-425-104-3
Tiraje: 500 CDS

Esta obra se termin el 15 de mayo de 2009 en:


Centro de Investigacin Regional Golfo Centro
Ocampo 324 Desp. 322,
Col. Centro
91700, Veracruz, Ver.
Tel. (229) 931 87 84 y 932 06 68

CAMPO EXPERIMENTAL LA POSTA


Km. 22.4 Carretera Veracruz-Crdoba
Paso del Toro, Ver.
Apdo. Postal No. 898 Suc. A
91700, Veracruz, Ver.
Tel. y Fax: (229) 934 77 38 y 938 44 53
correo electrnico: gonzalez.josejuan@inifap.gob.mx
garcia.teresa@inifap.gob.mx

La cita correcta es:


Garca P., T. B. e I. Lpez G. 2009. Introduccin al manejo de datos, utilizando
SAS. Campo Experimental La Posta. INIFAP. CIRGOC. Libro Tcnico Nm. 47.
Veracruz, Mxico. 105 p.
Introduccin al manejo de datos, utilizando SAS

You might also like