Introducción a SAS/BASE, lenguaje propio de la plataforma SAS. Introducción SAS Base Introducción a SAS/BASE, lenguaje propio de la plataforma SAS. http:\\sasybi.blogspot.com
Indice 01 INTRODUCCIÓN 01.1 Inicio de Sesión 02 PROCEDIMIENTOS Y PASO DATA 02.1 Lectura datos internos 02.2 Lectura datos externos 03 LIBRERIAS 03.1 Definición 04 PASO DATA 04.1 Instrucciones set del paso data 04.2 Operaciones ‘dataset’ 04.2 Condiciones
Indice 05 VARIABLES 05.2 Formatos 05.3 Labels 05.4 Length 05.1 Selección de variables 05.2 Formatos 05.3 Labels 05.4 Length 06 FUNCIONES SAS 06.1 Funciones numéricas 06.2 funciones fecha 06.3 Funciones alfanuméricas
Indice 07 PROCEMIENTOS 07.1 Sintaxis 07.2 Procedimientos frecuentes 08 PROC SQL 08.1 Sintaxis 08.2 Joins 09 CONEXIONES A BBDD 09.1 Librerías 09.2 Ejemplo: Oracle, SQL Server, DB2, Teradata
Indice 10 MACROS 10.1 Introducción 10.2 Variables de macro 10.3 Generación de código 10.4 Macros con parámetros de entrada 11 COMPRESION DE TABLAS 11.1 CPORT 11.2 CIMPORT 12 PROCEDMIENTOS ESTADISTICOS 12.1 PROC univariate 12.2 PROC Freq
Indice 01 INTRODUCCIÓN 01.1 Inicio de Sesión 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Introducción / Inicio de sesión SAS/BASE es el lenguaje propio de programación propio de la plataforma SAS. Lenguaje de programación de la cuarta generación flexible y extensible diseñado para acceso de datos, transformación y reporting.
Introducción / Inicio de sesión Ventana LOG Barra Menú “Explorer” Ventana Editor Status line Ventana Output
Introducción / Inicio de sesión Ventana “Explorer”: Contiene accesos directos a ficheros, librerías, y una ventana de resultados. Ventana ” EDITOR”: Ventana editable para el desarrollo del lenguaje SAS base. Ventana ”LOG”: Ventana para la visualización de los logs, escribe mensajes de advertencia o/y error, e informa sobre la velocidad de ejecución. Ventana ”OUTPUT”: Ventana de resultados.
Indice 02 PROCEDIMIENTOS Y PASO DATA 01 INTRODUCCIÓN 02.1 Lectura datos internos 02.2 Lectura datos externos 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Procedimientos y Paso Data Sintaxis : Data Nombre. Creación/Modificación de ‘dataset’. Dataset : Conjunto de datos creados con SAS. Operaciones dentro de un dataset ( lectura, creación de variables, cambio de etiquetas.. ) se realiza dentro de la instrucción DATA. Sintaxis : PROC. Acceso a ‘dataset’ sin modificar su estructura: Análisis, listados, cálculos estadísticos... Para especificar un dataset especifico se utilizaremos la opción ‘DATA=nombre_dataset’. Si no se especifica esta opción utilizará el ‘dataset’ creado más reciente. Cada instrucción es necesario el signo “;”. Los comentarios van precedidos por un signo “*”. Todo paso DATA o PROC debe acabar con la sentencia “RUN”;.
Indice 02 PROCEDIMIENTOS Y PASO DATA 01 INTRODUCCIÓN 02.1 Lectura datos internos 02.2 Lectura datos externos 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Procedimientos y Paso Data / Lectura datos internos * Datos correspondientes aun estudio sobre niños superdotados; * Se les realizaron dos test; DATA EJEMPLO1; INPUT NUM_NIN SUP INIC $ SEXO EDAD; CARDS; 4 1 JPY 1 56 5 2 JTA 1 48 6 4 RMA 0 88 7 2 HFB 0 28 ; RUN; PROC PRINT; INPUT : Declaración de variables, nombre de las variables y ‘$’ si son alfanuméricas CARDS : Lectura de los datos internos PROC PRINT : Procedimiento para listar los datos , el resultado de este procedimiento se visualiza en la ventana de output.
Indice 02 PROCEDIMIENTOS Y PASO DATA 01 INTRODUCCIÓN 02.1 Lectura datos internos 02.2 Lectura datos externos 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Procedimientos y Paso Data / Lectura datos externos INFILE: Lectura de archivos externos, especificando la ruta del archivo. Opción: LRECL: máxima longitud de cada línea (necesaria si el registro tiene mas de 256 caracteres); Formas de lectura: Fichero formato fijo: Especifica las columnas. Ficheros con delimitador; (NO espacio en blanco) se define con la opicon DLM= ‘separador’. Ejemplo DLM=“|”. DATA EJEMPLO2; INFILE ‘C:\DATOS1.DAT’ LRECLS=9; INPUT NUM_NIN 1-2 INIC $ 4-6 SEXO 7 EDAD 8-9; RUN; PROC PRINT DATA=EJEMPLO2; DATA EJEMPLO3; INFILE ‘C:\DATOS2.DAT’ DLM=’09’x; INPUT NUM_NIN TEST; PROC PRINT DATA=EJEMPLO2;
Indice 03.1 Definición 03 LIBRERIAS 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 03.1 Definición 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Librerías Una librería es una carpeta donde se almacenan los archivos de SAS. Al crear la librería se accede a los datos, pero al suprimirla no se borran los datos sino el acceso. Tipos de Librería : Locales -> Carpetas dentro del PC Remotas-> Carpetas del servidor Temporales -> Librería WORK: se elimina todos los datos al finalizar la sesión Permanentes -> Datos permanentes al finalizar la sesión.
Indice 03.1 Definición 03 LIBRERIAS 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 03.1 Definición 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Librerías / Definición Sintaxis: LIBANAME nombre_libreria ‘ruta (local o remota)’ Nombre Librería : Nombre de acceso a la librería. Ruta: Ruta dónde será ubicada ( local o remota). Ejemplo: Data prueba1; Run; Libname prueba ‘c:\prueba_dir’ DATA preuba.prueba2; LIbname : Declaración de librería Options: ACCESS=READONLY|TEMP COMPRESS=NO | YES | CHAR | BINARY CVPBYTES=bytes
Indice 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 04.1 Instrucciones set del paso data 04.2 Operaciones ‘dataset’ 04.3 Condicional 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Paso DATA / Instrucciones set del paso Data Paso DATA :SET LIBNAME TEST 'D:\'; DATA TEST.EJEMPLO1; SET EJEMPLO1; RUN; DATA TEST.EJEMPLO2; SET EJEMPLO2; DATA TEST.EJEMPLO4; SET EJEMPLO3; OPTIONS LS=75 PS=50 NODATE NONUMBER; TITLE 'dataset TEST.EJEMPLO2'; FOOTNOTE 'dataset RESULTADOS'; PROC PRINT DATA=TEST.EJEMPLO2; TITLE; FOOTNOTE; Los datasets EJMEPLO1, EJMEPLO2 y EJMEPLO3 se encuentran en las librerías WORK y TEST,; guardados de forma temporal en la librería WORK y de forma permanente en la librería TEST TITLE : Titulo en la ventana OUTPUT FOOTNOTE : Pies de pagina en la ventana OUTPUT OPTIONS: LS : Numero de caracteres por linea PS: Numero de lineas por pagina NODATE : Elimina la cabecera por defecto NONUMBER: Elimina la numeración de las páginas.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04.1 Instrucciones set del paso data 04.2 Operaciones ‘dataset’ 04.3 Condicional 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Paso DATA / Operaciones dataset DATA B; SET A; RUN; La instrucción SET asigna al dataset del paso DATA los mismos datos, variables y propiedades que el dataset de la instrucción SET. Copia del dataset A llamado B. A y B son iguales Copia del dataset B llamado C. Y se añade la variable VARA con el valor 1. Siempre sea necesaria alguna modificación, operación, recodificación, ... en algún dataset se realiza mediante el paso DATA y la instrucción SET. DATA C; SET B; VARA=1; RUN; Copia en la librería WORK, el datasetAnt, el cual no se modifica en esta ejecución. LIBNAME nombreLib ‘d:\datos_sas’; DATA nombre1; SET nombreLib.datasetAnt; RUN;
Paso DATA / Operaciones dataset DATA AUXILIAR; SET TEST.EJEMPLO1; FILE 'A:\DATOS1.DAT' ; PUT NUM_NIN 1-2 SUP 3 INIC $ 4-6 SEXO 7 EDAD 8-9; RUN; Guardar datos en un fichero externo FILE :Exportar los datos de un dataset a la ruta y formato deseados, pero sólo ficheros texto. PUT :Posiciones de cada variable Ordenar datos en un dataset: El procedimiento SORT se ordena el dataset según las variables especificadas en la instrucción BY. PROC SORT DATA=TEST.EJEMPLO1; BY NUM_NIN; RUN; PROC SORT DATA=TEST.EJEMPLO2; BY NUM_NIN; RUN; PROC SORT DATA=TEST. EJEMPLO3; DATA TEST. EJEMPLO4; MERGE TEST.EJEMPLO3 TEST.EJEMPLO2; PROC PRINT; Merge de datasets: La sentencia MERGE sirve para "cruzar" n tablas dando como resultado m resultados de salida de datos. Es imprescindible que las tablas de entrada estén ordenadas por las variables de cruces. Debe llevar una sentencia BY con las variables de cruce. En el cuerpo del merge se permite cualquier sentencia SAS valida en dataset.
Paso DATA / Operaciones dataset DATA TEST.EJEMPLO5; SET EJEMPLO.EJEMPLO4; RUN; PROC APPEND BASE=TEST.EJEMPLO5 DATA=TEST.EJEMPLO1 FORCE; PROC PRINT; Añadir casos: PROC APPEND :El dataset resultante es el dataset especificado en la opción BASE, y a éste se le añaden todos los casos del dataset de la opción DATA. Cuando ambos datasets no tienen idéntica estructura se requiere la opción FORCE al final de la instrucción.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04.1 Instrucciones set del paso data 04.2 Operaciones ‘dataset’ 04.2 Condicional 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Paso DATA / Condidiciones Paso DATA : Condicional DATA RESULTADO7; SET TEST.RESULTADO8; CENTRE=10; IF EDAD < 50 THEN EDAD2=1; ELSE EDAD2=2; IF NUM_NIN=5 THEN DO; INIC='ABC'; SEXO=1; END; RUN; PROC PRINT; Sentencia condicional: Se pueden seleccionar casos datos que cumplan cierta condición, a partir de la instrucción IF o equivalentemente la instrucción WHERE: Sintaxis: a) IF condicion THEN accion; ELSE accion; b) IF condicion THEN DO; accion1; acccion2; END;
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 05.1 Selección de variables 05.2 Formatos 05.3 Labels 05.4 Length 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
VARIABLES / Selección de variables Paso DATA : keep y drop DATA AUXILIAR2 (KEEP= TEST RESULTADO); SET TEST.PRUFINALES; RUN; KEEP: La instrucción KEEP permite guardar en el dataset creado sólo las variables allí mencionadas. Las demás variables son eliminadas del dataset resultante. DATA AUXILIAR3 (DROP= TEST RESULTADO); SET TEST.PRUFINALES; RUN; DROP: La instrucción DROP permite ELIMINAR del dataset las variables allí mencionadas. Las demás variables continúan en el dataset resultante.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 05.1 Selección de variables 05.2 Formatos 05.3 Labels 05.4 Length 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
VARIABLES / Formatos Paso DATA : Format y Proc Format DATA AUXILIAR4 SET TEST.PRUEFINALES; FORMAT EDAD 2. NOMBRE $40. RUN; FORMAT: Formato de las variables. Sintaxis: FORMAT nombre_var ($ si es alfanumerica) logitud +’.’ ( Todos los formatos acaban en .) PROC FORMAT ; VALUE VSI_NO 1=‘SI’ O=‘NO’; RUN; DATA AUXILIAR5 SET TEST.PRUFINALES; FORMAT APROBADO VSI_NO. EDAD 2.; PROC FORMAT. Permite utilizar formatos internos de SAS o crear formatos a medida mediante PROC FORMAT.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 05.1 Selección de variables 05.2 Formatos 05.3 Labels 05.4 Length 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
VARIABLES / LABELS Paso DATA : LABEL DATA AUXILIAR5; SET TEST.PRUFINALES; LABEL RSPFINAL =‘ RESULTADO PRUEBA FINAL’ RUN; LABEL: Permite establecer etiquetas a las variables para su mejorar su comprensión.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 05.1 Selección de variables 05.2 Formatos 05.3 Labels 05.4 Length 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
VARIABLES / LENGTH Paso DATA : LENGTH DATA AUXILIAR6; SET TEST.PRUEBASFINALES; LENGTH EDAD 2 NOMBRE $ 50; RUN; LENGTH: Permite establecer la longitud de los campos. Sintaxis: Length nom_var longitud; Nota ( Si es alfanumerica ira precedida de un $.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 06.1 Funciones numéricas 06.2 funciones fecha 06.3 Funciones alfanuméricas 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
FUNCIONES SAS / FUNCIONES NUMÉRICAS ABS(EXPRESIÓN) SQRT(EXPRESIÓN) ROUND(EXPRESIÓN) ROUND(EXPRESIÓN, PRECISIÓN) EXP(EXPRESIÓN) LOG(EXPRESIÓN) LOG2(EXPRESIÓN) LOG10(EXPRESIÓN) COS(EXPRESIÓN) SIN(EXPRESIÓN) TAN(EXPRESIÓN) Valor Absoluto Raíz Cuadrada Redondear Redondear con determinada precisión (la precisión es una potencia de 10 Exponencial Logaritmo Logaritmo con base 2 Logaritmo con base 10 Coseno Seno Tangente
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 06.1 Funciones numéricas 06.2 Funciones fecha 06.3 Funciones alfanuméricas 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
FUNCIONES SAS / FUNCIONES FECHA MDY (MES,DIA,AÑO) DAY(VAR_FECHA) MONTH (VAR_FECHA) YEAR (VAR_FECHA) DATEPART (EXPRESIÓN) DHMS (FECHA,HOR, MIN,SEG) INTCK(UNIDAD, FEC1,FEC2) Formato fecha mes día año Retorna el día de una variable tipo fecha Retorna el mes de una variable tipo fecha Retorna el año de una variable tipo fecha Retorna la parte de la fecha de una variable de tipo fecha_hora Convierte a variable tipo fecha Obtiene la distancia entre dos fechas en la unidad especificada
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 06.1 Funciones numéricas 06.2 Funciones fecha 06.3 Funciones alfanuméricas 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
FUNCIONES SAS / FUNCIONES ALAFANUMERICAS INDEX COMPRESS LOWCASE UPCASE LENGTH LEFT REVERSE SCAN SOUNDEX SPEDIS SUBSTR TRANSLATE Busca una expresión de caracteres dentro de una cadena Elimina caracteres específicos de una cadena. Convierte todas las letras del argumento a minúsculas Convierte todas las letras del argumento a mayúsculas Retorna la longitud del argumento Alinea a la izquierda una expresión de caracteres Da la vuelta a una cadena Selecciona una palabra en particular de una expresión de caracteres Codifica una cadena a sonidos para facilitar comparaciones Determina la similitud entre dos palabras expresada cómo una distancia Extraes una subcadena de un argumento Reemplaza caracteres específicos de un argumento
Indice 07.2 Procedimientos frecuentes 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 07.1 Sintaxis 07.2 Procedimientos frecuentes 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS PROC SQL 12 PROCEDMIENTOS ESTADISTICOS
PROCEDIMIENTOS / SINTAXIS PROC NOM_PRC DATA = nom_dataset OPCIONES ESPECIFICAS; WHERE CONDICIÓN; BY VARIABLES; WEIGHT VARIABLE_PESO; OUTPUT OUT=dataset_salida; RUN; Procedimientos: DATA=nombre_dataset Esta opción permite especificar cuál es el dataset de trabajo. Las instrucciones específicas de cada procedimiento son un requisito indispensable para el funcionamiento del mismo, y suelen estar relacionadas con las variables que se analizan. La instrucción WHERE permite estudiar sólo los datos del dataset que cumplen una cierta condición. La instrucción BY se utiliza para partir los datos del dataset en diferentes grupos según los valores que toma la variable allí mencionada. La instrucción OUTPUT OUT=dataset_salida es una opción muy útil que permite guardar los estadísticos calculados por el procedimiento en un dataset que se llama dataset_salida. Para cualquier duda en la sintaxis de un procedimiento, consultar el HELP.
Indice 07.2 Procedimientos frecuentes 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 07.1 Sintaxis 07.2 Procedimientos frecuentes 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
PROCEDIMIENTOS / PROCEDIMIENTES FRECUENTES Procedimientos SAS APPEND CALENDAR CATALOG CHART CIMPORT COMPARE CONTENTS COPY CORR CPORT DATASETS DBCSTAB DISPLAY EXPLODE EXPORT FORMAT FORMS FREQ Procedure Añadir datos a un dataset Procedure Calendario con fechas y citas Procedure Manipula los catálogos de SAS Procedure Gráficos de barras sencillos Procedure Importación de datos de otras versiones de SAS Procedure Camparación de Bases de datos Procedure Contenidos de un dataset Procedure Realiza copias de un dataset Procedure Correlación entre variables Procedure Exportación de datos de otras versiones de SAS Procedure Manipulación de datasets (eliminar). Procedure Produce tablas de conversión a caracteres de doble-byte. Procedure Visualizar titulos Procedure Titulos grandes, vía explotar caracteres. Procedure Exportar datasets a texto (p. ej.) Procedure Dar etiquetas a los valores de las variables Procedure Para crear etiquetas adesivas Procedure Tablas de frecuencias
PROCEDIMIENTOS / PROCEDIMIENTES FRECUENTES Procedimientos SAS FSLIST IMPORT MEANS OPTIONS PLOT PMENU PRINT PRINTTO RANK REGISTRY REPORT SORT SQL STANDARD SUMMARY TABULATE TIMEPLOT TRANSPOSE TRANTAB UNIVARIATE Procedure Examinar ficheros externos al SAS Procedure Importar datos (p. ej. en formato texto) Procedure Resumir los datos Procedure Opciones de la ventana OUTPUT Procedure Diagramas de dispersión sencillos Procedure Prepara Menus para ser utilizados por otros módulos de SAS (AF, FSP) Procedure Listar datasets Procedure Defini las rutas dónde almacenar las ventanas LOG y OUTPUT Procedure Crea Rangos a partir de variables. Procedure Mantiene el registro de SAS. Procedure Para realizar informes Procedure Ordenar un dataset Procedure Consultas a datasets mediante instrucciones SQL Procedure Produce variables estandarizadas Procedure Estadísticos de Resumen Procedure Tablas Procedure Diagramas de dispersión respecto el tiempo Procedure Transpone datasets Procedure Produce y mantiene tablas de traducción de códigos Procedure Análisis univariados
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 08.1 Sintaxis 08.2 Joins 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
PROC SQL / SINTAXIS PROC SQL Sintaxis: PROC SQL; QUIT; PROC SQL Query-Expresion ; QUIT; PROC SQL El procedimiento PROC SQL utiliza el Lenguaje Estructurado Query (SQL) para: - recobrar y manipular conjuntos de datos SAS - crear y borrar conjuntos de datos - generar informes - añadir y modificar valores de datos en conjunto de datos - añadir, modificar o borrar columnas en un conjunto de datos Query-expression contiene sentencias SQL.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 08.1 Sintaxis 08.2 Joins 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
PROC SQL / JOINS PROC SQL: Join PROC SQL; CREATE TABLE FIEBRE.FINAL AS SELECT * FROM lefttab as l, righttab as r WHEREl.continent=r.continent; QUIT; Ó SELECT * FROM lefttab as l inner join righttab as ron (l.continent=r.continent); Inner Join: La tabla resultante contendrá únicamente los registros que sean comunes en ambas tablas. Outer Join Left outer join: La tabla resultante contendrá los registros comunes en ambas tablas más los de la primera tabla que no se han cruzado con ninguna fila de la segunda tabla. Right outer join:La tabla resultante contendrá los registros comunes en ambas tablas más los de la segunda tabla que no se han cruzado con ninguna fila de la primera tabla. Full outer join : La tabla resultante contendrá los registros comunes en ambas tablas más las filas de cada una de las tablas que no se han cruzado con ninguna de la otra. Left : PROC SQL; CREATE TABLE FIEBRE.FINAL AS SELECT * FROM lefttab as l left join righttab as ron (l.continent=r.continent); QUIT; Right SELECT * FROM lefttab as l right join righttab as r on (l.continent=r.continent); Full SELECT *FROM lefttab as l full join righttab as r
Indice 09.1 Librerías 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 09.1 Librerías 09.2 Ejemplo: Oracle, SQL Server, DB2, Teradata 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
CONEXIONES A BBDD / LIBRERIAS Sintaxis: Libname libref engine-name <SAS/ACCESS-connectionn-opt> <SAS/ACCESS-LIBNAME-opts> Libname -> Sentencia para la declaración de librerías Libref -> Nombre de la conexión definida para el acceso a base de datos. Alias de conexión. Engine-name .> Nombre del motor de SAS /ACCESS definido para las diferentes conexiona a BBDD SAS/ACCESS-connectionn-opt-> Opciones para la conexión a la base de datos, por ejemplo usuario, password, ... SAS/ACCESS-LIBNAME-opts -> Opciones para la librería declarada.
Indice 09.1 Librerías 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 09.1 Librerías 09.2 Ejemplo: Oracle, SQL Server, DB2, Teradata 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
CONEXIONES A BBDD / LIBRERIAS Conexiones a BBDD : Ejemplos de conexiones SQL SERVER: libname sqlS odbc dsn=ORINGENDATOS user=xxxxx password=xxxxx schema=xxxxx; SQL SERVER: Es necesario crear un origen de datos desde la opción de windows de ‘Administración de Dispositivos’. DB2 libname DB2UDB db2 database=XXXXX user=xxxxx password=xxxxx; DB2: Es necesario tener catalogadas las bases de datos en el cliente DB2 para realizar la conexión. ORACLE libname Oracle oracle user=“xxxxxxx" password=“xxxxxxxx" path=“xxxx" schema=‘xxxxx'; Oracle: Es necesario catalogar la base de datos en el TNS_Names.ora para realizar la conexión a la base de datos. Teradata: Es necesario tener catalogadas las bases de datos en el cliente Teradata para realizar la conexión. TERADATA libname terasas teradata database='ddbb' user='user' pw='pass';
Indice 10.1 Variables de macro 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 10.1 Introducción 10.1 Variables de macro 10.2 Generación de código 10.3 Macros con parámetros de entrada 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
Macros / Introducción La programación Macro es una herramienta muy útil para estandarizar, extendery la programación clásica en código SAS. Entre otras virtudes, permite reducir en gran medida la cantidad de código necesario para las tareas más frecuentes. La ventana de programación para crear Macros, es la ventana habitual de sintaxis. La programación Macro tiene dos componentes principales: - El procesador Macro, encargado de “traducir”. - El lenguaje Macro, la sintaxis que se debe utilizar ara comunicarse con el procesador Macro. Al compilar un texto, existen dos caracteres que activan al procesador Macro: - & : &nombre , que designará a las variables Macro. - % : %nombre , que designará a las Macros creadas por nosotros o ya residentes en el sistema.
Indice 10.2 Variables de macro 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 10.1 Introducción 10.2 Variables de macro 10.3 Generación de código 10.4 Macros con parámetros de entrada 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
MACROS / VARIABLES MACROS Sintaxis: libname : % let nombre = literal_nombre ; Formula: %let num=%eval (5*2); -> uso en formulas Variables Macro: La instrucción %let permite asignar a un nombre un conjunto de caracteres. Las referencias a variables Macro ya creadas siempre serán precedidas por el símbolo: “&”.Los nombres de variables Macro no pueden contener caracteres extraños cómo:; , espacio “ ‘ AND OR etc. Variables definidas por el sistema: sysdate Sysday Syslast syserr %let macr=%nrtsr(%pl); ( se asigna a macr el litera pl) %let plo = %str(proc print ; run;); Variables definidas por el sistema: Lista do de variables definidas por el sistema Se recomienda que empiece por letra o ‘_’. Para listar todas las variables %put_all_;
Indice 10.1 Introducción 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 04 PASO DATA 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 10.1 Introducción 10.2 Variables de macro 10.3 Generación de código 10.4 Macros con parámetros de entrada 11 COMPRESION DE TABLAS PROC SQL 12 PROCEDMIENTOS ESTADISTICOS
MACROS / GENERACION DE CODIGO MACROS Macros : Código condicionales y repetitivas Sintaxis: % macro nombre macro; expresion % mend nombre macro Estructura general de una macro: Se puede introducir código SAS ( pasos data, procedimientos, funciones..). Para invocar una macro es necesario el prefijo % Para introducir comentarios se utiliza %* Condiciones % macro EJEMPLO1(info=); % if &info=a then %do; proc sort; data=prueba run; % else %if &info=b %then %do; proc print noobs label; % else %put “Resultado” &INFO %mend; Condiciones : Instrucción condicional: %IF ... %THEN..; %ELSE... ; Y son mas de una instrucion en los bloques then o else se utiliza %DO; .. %END; Instrucción Repetitivas: (Ejemplo) %do i=1:%to # %put &num “Resultado”; %end;
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 10.1 Introducción 10.2 Variables de macro 10.3 Generación de código 10.4 Macros con parámetros de entrada 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS
MACROS / PARAMETROS DE ENTRADA Macros : Parámetros de entrada en las macros. Ejemplo: % macro pl( data=,yvar=,xvar=);; proc plot data = &data; run; % mend; LLamada: %pl (data=a,yvar>=y=xvar=x); Definición de los parámetros de entrada: Definición Llamada %macro pl(data=,yvar=,xvar=); %pl(data0a,yvar=u;xvar=x); %macro pl(data,yvar,xvar); %pl(a,y,x); %macro pl(data=a,yvar=y,xvar=x); %pl(xvar=x);
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 11.1 CPORT 11.1 CIMPORT 12 PROCEDMIENTOS ESTADISTICOS
COMPRESION DE TABLAS / CPORT Compresión de tablas : CPORT Sintaxis: Libname nom_lib ‘directorio_lib'; proc cport lib=nomb_lib file=‘nombre-result.cpo';run; CPORT: El procedimiento para la compresión de los datos de una librería en un archivo cpo. Se puede utilizar para comprimir tablas en un entorno Windows y exportarlas a un entorno Unix
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 11.1 CPORT 11.2 CIMPORT 12 PROCEDMIENTOS ESTADISTICOS
COMPRESION DE TABLAS / CIMPORT Compresión de tablas : CIMPORT Sintaxis: libname nom_lib ‘ruta_lib'; proc cimport infile=‘ruta_archivo\nombre_archivo_comp.cpo' library=nomb_lib; run; CIMPORT: El procedimiento para la descompresión de los datos de archivo cpo a una librería. Se puede utilizar para comprimir tablas en un entorno Windows y exportarlas a un entorno Unix
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS 12.1 PROC univariate 12.2 PROC Freq
PROCEDMIENTOS ESTADISTICOS / PROC UNIVARIATE Procedimientos estadísticos : Proc Univariate Sintaxis: PROC UNIVARIATE DATA=FIEBRE.GRADOS; VAR EDAD; OUTPUT OUT=U_EDAD MEAN=MITJANA MEDIAN=MEDIANA MODE=MODA; RUN; PROC UNIVARIATE DATA=FIEBRE.GRADOS PLOT NORMAL; PROC PRINT DATA=U_EDAD; Proc Univariate: El procedimiento PROC UNIVARIATE se utiliza para cuando el objetivo del análisis es por ejemplo testar una hipótesis o bien cualquier otro análisis más profundo de los datos, es interesante explorar más detalladamente las variables y obtener otros estadísticos descriptivos así como tests relativos a la distribución de los datos.
Indice 01 INTRODUCCIÓN 02 PROCEDIMIENTOS Y PASO DATA 03 LIBRERIAS 05 VARIABLES 06 FUNCIONES SAS 07 PROCEMIENTOS 08 PROC SQL 09 CONEXIONES A BBDD 10 MACROS 11 COMPRESION DE TABLAS 12 PROCEDMIENTOS ESTADISTICOS 12.1 PROC univariate 12.2 PROC Freq
PROCEDMIENTOS ESTADISTICOS / PROC FREQ Procedimientos estadísticos : Proc Freq Sintaxis: PROC FREQ DATA=FIEBRE.GRADOS; TABLES SEXO /OUT=F_SEXO; RUN; TABLES SEXO /TESTP=(0.4 0.6); Proc Freq: El procedimiento FREQ genera tablas de frecuencias. Este procedimiento, también puede ser útil para observar la calidad de los datos, comprobando si hay valores extraños o faltantes.