You are on page 1of 14

UNIVERSIDAD AUTONOMA CHAPINGO

Ensear la explotacin de la tierra, no la del hombre

DEPARTAMENTO DE FITOTECNIA
MATERIA;

MICROCOMPUTACN
APUNTES DE SAS

CATEDRTICO:

DR. TEODORO GOMEZ HERNANDEZ


PRESENTA: Ayala

Oliva Lucio.

4 1
Chapingo, Mxico. Diciembre de 2008

EL SISTEMA SAS.

El sistema SAS organiza datos en forma rectangular la fase DATA, (DATA= conjunto de datos o informacin). En un conjunto de datos cada hilera representa la informacin de una entidad individual y es llamada OBSERVACION. Cada COLUMNA representa el mismo tipo de informacin y es llamada variable NOMBREE GRUPO CATEGORIA MATRICULA 1 2 3 4 5 Para construir un SAS DATA SET se usan instrucciones o declaraciones con un lenguaje de programacin que en este caso es el lenguaje SAS. La fase DATA de SAS trabaja de la siguiente manera: una fase de compilacin en la que tiene dos periodos: la que compila. Solo se coteja la informacin. La que crea. Crea un buffer del INPUT. Crea un programa vector DATA. la segunda fase es la de ejecucin. Inicia con una instruccin DATA (cuenta de iteraciones). El programa DATA vector es el rea de memoria donde SAS construye el DATA SET y lo hace con la lgica de una observacin a la vez cuando el programa corre los valores de los datos que son ledos y puestos en el buffer del INPUT La fase de DATA es una REGLAS PARA LAS INSTRUCCIONES SAS. los enunciados SAS terminan con punto y coma (;) los enunciados SAS se pueden introducir en minsculas, maysculas o mezcladas en una misma lnea pueden aparecer varias instrucciones SAS una instruccin SAS puede iniciar en una lnea y termina en otra con la condicin de que no se divida una palabra una extensin SAS puede iniciar en cualquier columna las palabras se separan una de otra por al menos un espacio o por caracteres especiales REGLAS PARA NOMBRE SAS DE LOS DATA Y DE LAS VARIABLES un nombre puede contener mximo 8 caracteres el primer carcter debe ser una letra los siguientes caracteres pueden ser nmeros letras o guion bajo no pueden aparecer espacios en blanco en los nombres SAS Una fase PROC es la porcin que inicia con una instruccin PROC (abreviatura de procedure) y termina con la instruccin RUN, con DATA o CON o con otra instruccin PROC, esta esta fase comprende:

1. Instruccin PROG 2. El nombre del procedimiento a usar. 3. Nombre del conjunto d datos. Chapingo, Mxico. Noviembre del 2000
data titulo; input trat $ rend; cards; rastreo 1623 siembra 156 riego 458 preparacion 874 labranza 1036 proc print; title 'experimento de siembra'; run;

Experimento de siembra Obs 1 2 3 4 5 trat

1 16:26 Wednesday, December 8, 2008 rend

rastreo 1623 siembra 156 riego 458 preparac 874 labranza 1036

Si se omite el DATA, SAS ocupa el DATA creado inmediatamente antes. INSTRUCIONES ADICIONALES SOBRE LO QUE SE QUIERE HACER. TITLE, el cual usar de hasta 132 caracteres y no debe llevar (;) La instruccin RUN le dice a SAS que todo el conjunto de instrucciones est listo
data titulo; input $ trat $ rend; cards; rastreo 1623 siembra 156 riego 458 preparacion 874 labranza 1036 proc print; title "experimento de siembra" run;

SALIDAS PRODUCIDAS POR SAS 1. En la ventana Log se muestra las ordenes que se dieron para la ejecucin del programa y cuando hay errores tambin son mostrados en esta ventana. 2. En la ventana Out o Salida se muestran los resultados de los procedimientos una vez que se han ejecutado. 3. El conjunto de datos que constituyen lo que denominamos el SAS DATA SET que constituye parte del programa donde se almacenan los datos y

la informacin descriptiva correspondiente. este conjunto no siempre se ve. FORMA DE CORRER UN PROGRAMA SAS En el programa editor se teclean todas las partes que componen el programa y una vez que est bien editado porque cumple con todas las reglas de sintaxis del lenguaje SAS la orden SUBMIT (f8) hace que se ejecute el programa y se enve a la ventana de salida y a la ventana LOG la informacin de lo realizado. En la ventana log permanecern por default los registros de cada corrida mientras no se limpie con la orden CLEAR o Ctrl + E. RECORDAR QUE: en la lnea de comandos con la palabra Keys o F9accedemos a la ventana donde estn definidos los usos de las teclas. DETALLES SOBRE LA INSTRUCCIN INPUT Input se usa para instruir a SAS a cerca de como leer los datos y provee instrucciones que definen las variables mediante la indicacin de sus atributos entre los cuales estaran los siguientes: 1. 2. 3. 4. 5. Nombre Tipo (SAS asume por default que son numricos) Longitud (8bityes) Informante Formato

Las variables, adems de numricas, pueden ser del tipo alfanumrico en cuyo caso se indica con el signo$ inmediatamente despus del nombre de la variable (dejar un espacio) Aun que la longitud es de 8bytes pueden tener otras dimensiones especificando con un informante o con un numero de columnas la longitud que se les asigna COMO SE INDICA LA LOCALIZACION DE LOS DATOS Hay tres lugares donde SAS puede leer los datos: 1. En la cadena del DATA despus de la instruccin CARDS 2. En un archivo del cual se especifica su ubicacin mediante la instruccin INFILE 3. En un archivo SAS La seleccin de la forma de disponer los datos para que SAS los lea depende de varios factores: 1. Si los datos estn alineados en columnas u separados por algn espacio en blanco

2. Si las variables que son caracteres alfanumricas contienen algn blanco 3. Si las variables que son numricas contienen, por ejemplo comas (,) 4. Si contienen fechas o tiempo 5. Si hay ms de una observacin en cada lnea 6. Si una observacin abarca ms de una hilera Lo anterior nos lleva a definir que hay tres formas o tipos bsicos de disponer de los datos para que SAS los lea: 1. Entrada por lista 2. Entrada por columna 3. Entrada por formato CARACTERISTICAS: 1. Entrada por Lista Los capos deben estar separados por al menos un blanco Cada campo debe estar en el orden especificado en el INPUT Los datos perdidos o faltantes deben de representarse por un punto (.) Los caracteres no deben incluir un espacio en blanco La longitud de los valores es de 8, por lo que se trunca la escribirlo en el programa VECTOR Los datos deben ser nmeros o caracteres estndar

2. Entrada por Columna Los valores pueden ser de hasta 200 caracteres Pueden contener blancos Los campos pueden leerse en cualquier orden Un dato perdido o faltante no requiere especificarse con un punto, simplemente si en las columnas especificadas falta informacin el sistema lo considera como Dato Perdido Si se quiere se puede omitir algunas de las columnas de los datos Campos o partes de los campos pueden ser reledo

3. Entrada por Formato Se usa para que el sistema pueda leer correctamente cuando los datos tienen caracteres especiales como la coma (ej. 10,458) Para leer fechas como tales y no como caracteres o mezcla de letras y nmeros se tiene que informar a SAS que se trata de fechas, las formas ms comunes son: DATE9. DDMMYY9. WEEKDATE29. 07OCT68

data fofecha0; input pais $ 1-10 @16 salida date7. noche; cards; japan 13may89 8 grece 17oct89 12 new zeland 03feb90 16 brasil 28feb90 8 venezuela 10nov89 9 italy 25apr89 8 russia 03jan89 14 swisserlan 14jan90 9 australia 24oct89 12 irland 27may89 7 proc print; run;

ASPECTOS IMPORTAMTES PARA LA ENTRADA CON FORMATO 1. El sistema lee la informacin hasta que terminan las columnas indicadas en el informante. 2. Se pueden leer datos que no estn en forma estndar 3. Se puede posicionar el apuntador del cursor para leer el siguiente valor. Lo anterior nos permite entender que hay otras formas entradas de los datos que se puede denominar Entrada por Secuencia que se usa en el caso de tener ms de una observacin o rengln y para ello en el input se indica con @@; ejemplo SAS. NOTA: Es importante no olvidar declarar con un punto cualquier observacin perdida o faltante. En caso de que se requiera ms de un rengln porque nuestros datos rebasan las 80 columnas estndar de SAS, entonces en el input se declara con el smbolo # a dems de los nombres de las variables CONTROL DE APUNTADORES DE COLUMNA 1.-Absoluto (@): direcciona el apuntador a la comuna que se le indique por ejemplo @17 lo mueve a la columna 17 en donde comenzara a leer otra variable declarada en el input. 2.- Relativo (+): instruye al apuntador a moverse n columna a la derecha antes de comenzar a leer el siguiente dato, ej: +6 mueve el apuntador 6 columnas a la derecha.
data apuntadr; input libro $ 15. +6 cards; los cuentos 4 matematicas 5 don quijote 1 proc print; precio comma5.; 2455 3256 3000

format precio comma5.; /* si le queremos poner coma a la cantidad*/ title "controlador relativo"; run;

Otra forma de leer variables con ms de 8 caracteres aun que se trate de una entrada por lista es utilizando el modificador de formato :; este modificador lo que hace es que le apuntador se brinque a donde empieza las siguiente variable indicada en el INPUT. Su uso hace que no importe que los datos estn bien o mal acomodados en columnas. Basta con indicar la mayor longitud de la variable, ejemplo: Data libros; Input libro: $ 1-20. Precio; Este formato de: es aceptado mientras la variable no incluya ningn espacio en blanco Este modificador no puede servir para leer en una entrada por lista en la que en alguna variable se tenga ms de 8 caracteres. No olvidar que usamos el (.) como un indicado en seguida del nmero correspondiente a las columnas que le indicamos. Otra forma d decirle que lea variables que contienen espacios en blanco es utilizando el modificador Ampersand (& (shift+6)). Tiene como restriccin el valor que sigue debe de estar separado por al menos 2 espacios en blanco. Data amper; Input numero nombre & $ 25. Equipo p$ pesoini pesofin; CALCULO DE VARIABLES NUMRICAS Y OPERADORES SAS. Los operadores SAS son smbolos que hacen una comparacin, una operacin lgica o un clculo aritmtico SAS usa principalmente dos clases de operadores: de prefijo y de infijo. Operadores de infijo: se aplican a la variable constante, funcin (expresin) que le sigue inmediatamente, por ejemplo +y, -25, + (y*x), -cos (angle1). Orden de prioridad: Regla 1: expresiones entro de parntesis se evalan antes de las que estn fuera del parntesis por ejemplo: 18/3*2 es lo mismo 6*2=12 pero 18/(3*2) es igual a18/(6)=3. -(y**x)= -(x^2) en cambio (x)**2= (-x)^2. Regla 2: hay un orden de prioridad dentro de diferentes grupos. Grupo 1 ** +prefijo -prefijo ^ NOT <> mnimum >< mximum Grupo 2 * /

Grupo 3 + infijo - infijo Grupo 4 !! o || concatenacin Grupo 5 (operadores de comparacin) = o E (igual a) ^= o E (no igual a) > o GT (GREATER THAN) < o LT (LESS THAN) >= o GE <= o LE IN (IGUAL A UNO DE UNA LISTA) Grupo 6 & and Grupo 7 | o ! or Regla 3: para operadores con la misma prioridad el operador a la izquierda se realiza primero. Excepciones: 1. En el grupo 1 que es el d ms alta prioridad la operacin de la derecha se ejecuta primero 2. Cuando dos operadores de comparacin rodean a una cantidad la expresin es evaluada como si un and (&) estuviera presente 12<edad <20 (12< edad & edad<20) Operadores aritmticos. ** * / + Note: If x<y then <=5; Else <=12; C=5*(x<y) +12*(x>=y); If x=6 & y=8 Obtener el valor de c. C=5.
data ama; input x y; c=5*(x<y)+12*(x>=y); cards; 1 5 2 2 3 3 4 6 4 9 5 7 6 8 7 5

8 9 10 proc run;

6 1 2 print;
13:08 Saturday, October 30, 2008 2 Obs 1 2 3 4 5 6 7 8 9 10 11 x 1 2 3 4 4 5 6 7 8 9 10 y 5 2 3 6 9 7 8 5 6 1 2 c 5 12 12 5 5 5 5 12 12 12 12

Sistema SAS

El operador|| (concatenar) concatena variables de caracteres hay que considerar que si que si la nueva variable es mayor a 8 caracteres se tiene que definir su longitud, por ejemplo. Nombres apeidosP; NUENOM=length nuenom $ N Nombre Apellidp Nuenom LENTGH nuenom $ 15 Nombre Apellidp Nuenom = trim (nombre)!! !!trim (apellidp); LENTGH nuenom $ 15; SUMA DE ACUMULADOS DE UNA VARIABLE Sea que se tiene la variable llamada A y se requiere obtener los valores acumulados, para ello se echa mano de los siguientes procedimientos, ejemplo:
DATA acumula2; INPUT GRUPO ALUMNOS; acumula1+ALUMNOS; CARDS; 1 34 2 36 3 38 4 39 PROC PRINT; RUN;

La otra forma de obtener le acumulado es empleando la sentencia LAG, la funcin que hace es desplazar una hilera hacia abajo el o los dato que interesan, de modo que podemos utilizar LAG1, LAG2, LAGn dependiendo del nmero de observaciones que se tengan, y finalmente, generar un variable que podemos llamar total=nombre de la variable de inters+SUM (of x1..xn); Hay instrucciones que permiten hacer un trabajo dentro de un ciclo, el cual

debe determinar para lo cual s ele da la instruccin END, ejemplo DO, cada DO debe tener su correspondiente END en especial del uso imperativo de la instruccin FORMAS ALTERNATIVAS PARA TOMAS SOLO UNAS VARIABLES Anteriormente se vio el uso de la sentencia IF para hacer un subconjunto de una data determinado. Otra forma de formar subconjuntos es utilizando las instrucciones DROP y KEEP. KEEP conserva las variables enunciadas mientras que DROP borra las variables enunciadas. Ambas se pueden utilizar de dos maneras: 1) (DROP = variable(s)) o (KEEP=variable(s)) 2) DROP = variable(s) o KEEP=variable(s). Es importante entender que hay una diferencia entre esta forma, en este caso el sistema lee todas las variables (DROP), pero escribe solo las no excluidas, en cambio utilizando la otra (KEEP) el sistema excluye las variables dichas y no las lee y solo escribe las que no se excluyen pero no las lee. Una vez que se tiene archivos SAS se pueden conocer como estn arreglados, es decir que variables tienen y todo los atributos de ellas, para eso se utiliza la instruccin PROC CONTENTS, la forma en que se utiliza es la siguiente PROC CONTENTS data =1. Si la instruccin se pone de la siguiente manera; SHORT la salida proporciona solo los nombres d la variables, y si la instruccin es con la sentencia POSITION en la salida se obtiene la lista en orden alfabtico y en orden por su posicin o localizacin en el archivo. En resumen, esta instruccin ayuda a visualizarlos tipos que se asignan a cada variable y sus respectivos modificadores. COMO UNIR DOS O MAS CONJUNTOS DE DATOS Se presentan dos situaciones en las que se requiere unir dos o ms archivos, el primer caso es cuando los diferentes archivos tienen las mismas variables y para lograrlo se utiliza la instruccin SET. La otra situacin es cuando se tienen diferentes variables pertenecientes a los mismos sujetos, para eso se utiliza la instruccin MERGE.
data uno; input a $ cards; xx xy yy aa $ xy yy xx aaa $; yy xx xy

data dos; input b $ bb $ bbb $; cards; xx xy yy xy yy xx

yy

xx

xy

data union; merge uno dos; proc print; run;

Los PROC actan sobre la data inmediata anterior.


LA INSTRUCCIN BY:

Esta instruccin se puede emplear para trabajar con sus datos agrupados la sintaxis en general es BY lista de variables; En el caso de su uso con la sentencia SORT la forma correcta de su uso seria: PROC SORT; BY lista de variables;
data fila; input apepaterno $ apematerno $ cards; licona garcia flores hernandez ayala oliva morales gervacio garcia davila garcia gutierrez proc sort; by edad; proc print; run;
Sistema SAS Obs 1 2 3 4 5 6 apepaterno flores ayala morales garcia garcia licona

nombre $ juan daniel lucio santiago fernando roman

edad 25 18 18 19 20 19

altura; 161 173 160 165 173 165

19:20 Thursday, November 18, 2008 4 apematerno nombre edad altura

hernande daniel 18 173 oliva lucio 18 160 gervacio santiago 19 165 gutierre roman 19 165 davila fernando 20 173 garcia juan 25 161

Si se usa solamente en la instruccin SORT el ordenamiento ascendente pero se puede tambin agrupar en orden ascendente y en ese caso la instruccin es: PROC SORT; DESCENDING lista de variables;
data fila; input apepaterno $ apematerno $ nombre $ edad cards; licona garcia juan 25 flores hernandez daniel 18 ayala oliva lucio 18 morales gervacio santiago 19 garcia davila fernando 20 garcia gutierrez roman 19 proc sort; by descending altura; proc print; run; altura; 161 173 160 165 173 165

Sistema SAS Obs 1 2 3 4 5 6

19:20 Thursday, November 18, 2008 7 apepaterno flores garcia morales garcia licona ayala apematerno nombre edad altura

hernande daniel 18 173 davila fernando 20 173 gervacio santiago 19 165 gutierre roman 19 165 garcia juan 25 161 oliva lucio 18 16

Un uso importante de SORT es el poder remover observaciones que estn duplicadas y para ello tenemos dos formas de hacerlo: 1. La primera es de la siguiente manera: PROC SORT DATA= NOMBRE DEL DATA A ORDENAR NO DUPKEY; BY VARIABLE; TITLE ARCH NO DUPLICADO; PROC PRINT; RUN;
input apepaterno $ apematerno $ nombre $ edad cards; licona garcia juan 25 garcia gutierrez roman 19 flores hernandez daniel 18 ayala oliva lucio 18 morales gervacio santiago 19 garcia davila fernando 20 garcia gutierrez roman 19 PROC SORT DATA=fila NODUPKEY; BY apematerno; TITLE 'ARCH NO DUPLICADO'; PROC PRINT; RUN;
ARCH NO DUPLICADO Obs 1 2 3 4 5 6 19:20 Thursday, November 18, 2008 10 apematerno nombre edad altura

altura; 161 165 173 160 165 173 165

apepaterno garcia licona morales garcia flores ayala

davila fernando 20 173 garcia juan 25 161 gervacio santiago 19 165 gutierre roman 19 165 hernande daniel 18 173 oliva lucio 18 160

2. La segunda opcion es: DATA NOMBRE DEL DATA; SET NOMBRE DEL DATA QUE TIENE LA INFORMACION; PROC SORT DATA=NOMBRE DEL ARCHIVO OUT=NOMBRE NUEVO NODUPLICATES; BY VARIABLE; PROC PRINT DATA=ESPECIFICAR ARCHIVO A IMPRIMIR; RUN; Con PROC SORT se pueden generar datas que se usen directamente despus para ello hay que generar una salida la cual tiene la siguiente estructura: PROC SORT DATA=UNO OUT= DOS; BY VARIABLE; PROC PRINT DATA=UNO; TITLE NAME; PROC PRINT DATA=DOS; TITLE NAME2; RUN;

PROC MEANS Este procedimiento produce estadsticos descriptivos de variables numricas ya sea para toda la variable o para grupos de observaciones mediante la sentencia BY. Tambin se puede crear uno o ms datas nuevos que contengan los estadsticos calculados. OPCIONES QUE PUEDEN EMPLEARSE EN LA INSTRUCCIN PROC MEANS. Data= nombre del data En este caso se pone el nombre del data a ser usado por el PROC MEANS; si se omite, entonces el ltimo archivo o juego de datos creado es el que se emplea (se aplica a todos los procs). NOPRINT. Le dice a MEANS que no imprima el estadstico por lo que se usa mas bien cuando el propsito del procedimiento es crear un nuevo data. MAXDEC=N. mediante estas instruccin se le dice el mximo numero de decimales que sern usados en la impresin de los resultados; varia entre 0 y 8. ESTADISTICOS ESPECIFICOS QUE PUEDEN OBTENERSE N. se refiere al nmero de observaciones en la que se basa el clculo. NMISS. Es el nmero de valores perdidos. MEAN. Es la media. STD. Desviacin estndar. MIN. El valor ms bajo. MAX. El valor ms alto. RANGE. El rango. SUM. La suma. VAR. La varianza. USS. La suma de cuadrados no corregida. CSS. Suma de cuadrados corregida. STDERR. El error estndar de la media. CV. El coeficiente de variacin. T. Es le valor de la T de student para probar la hiptesis de que la media poblacin es cero y otras. SENTENCIAS USADAS CON EL PROC MEANS BY nombres de las variables; esta sentencia se puede usar siempre y cuando previamente los datos sean ordenados por las variables deseadas. VAR nombre de las variables; se calcularan los estadsticos para cada variable numrica listada en la sentencia VAR, si no se especifica una sentencia VAR todas la variables numricas sern analizadas.

OUTPUT OUT= nombre del nuevo archivo option= lista de variables Cuando esta sentencia se incluye PROC MEANS construir un data con el nombre que se le indique por el parmetro OUT=a. los valores de malquiera de los estadsticos en listados bajo la sentencia PROC MEANS se pueden incluir en ese nuevo data. Para cada estadstico que se quiera se debe escribir su nombre (N, MEANS, STD, etc.) Un signo (=) y una lista de los nombre de las nueva variables separados por un espacio en blanco. El nmero de observaciones en el nuevo data corresponder al nmero de grupos para los cuales se calculan los estadsticos. PROC MEANS; VAR x1 x2; BY grupo; Output out=prueba1; MEAN= MA MB STD=SA

You might also like