Está en la página 1de 70

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.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

Barra Ventana
Menú LOG

“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
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
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

PASO DATA PROC

▪ Sintaxis : Data Nombre. ▪ Sintaxis : PROC.


▪ Creación/Modificación de ‘dataset’. ▪ Acceso a ‘dataset’ sin modificar su estructura:
▪ Dataset : Conjunto de datos creados con
Análisis, listados, cálculos estadísticos...
SAS. ▪ Para especificar un dataset especifico se
▪ Operaciones dentro de un dataset ( lectura,
utilizaremos la opción ‘DATA=nombre_dataset’.
Si no se especifica esta opción utilizará el
creación de variables, cambio de etiquetas.. ) se
‘dataset’ creado más reciente.
realiza dentro de la instrucción DATA.

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
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
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
Paso Data

* Datos correspondientes aun estudio sobre niños superdotados; ▪ INPUT : Declaración de variables, nombre de las
* Se les realizaron dos test; variables y ‘$’ si son alfanuméricas

▪ CARDS : Lectura de los datos internos


DATA EJEMPLO1;
INPUT NUM_NIN SUP INIC $ SEXO EDAD; ▪ PROC PRINT : Procedimiento para listar los
CARDS; datos , el resultado de este procedimiento se visualiza
en la ventana de output.
4 1 JPY 1 56
5 2 JTA 1 48
6 4 RMA 0 88
7 2 HFB 0 28
;
RUN;
PROC PRINT;
RUN;
Indice
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
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
Paso Data

DATA EJEMPLO2; ▪ INFILE: Lectura de archivos externos, especificando


•INFILE ‘C:\DATOS1.DAT’ LRECLS=9; la ruta del archivo.
▪Opción: LRECL: máxima longitud de cada línea
•INPUT NUM_NIN 1-2 INIC $ 4-6 SEXO 7 EDAD 8-9;
(necesaria si el registro tiene mas de 256
•RUN;
caracteres);
•PROC PRINT DATA=EJEMPLO2; ▪ Formas de lectura:
•RUN;
▪ Fichero formato fijo: Especifica las
•DATA EJEMPLO3; columnas.

▪ Ficheros con delimitador; (NO espacio en


•INFILE ‘C:\DATOS2.DAT’ DLM=’09’x;
•INPUT NUM_NIN TEST;
•RUN;
blanco) se define con la opicon DLM=
‘separador’. Ejemplo DLM=“|”.
•PROC PRINT DATA=EJEMPLO2;
•RUN;
Indice

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
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
Librerías

•Sintaxis: ▪ LIbname : Declaración de librería


▪ Options:
LIBANAME nombre_libreria ‘ruta (local o remota)’

Nombre Librería : Nombre de acceso a la librería. ▪ ACCESS=READONLY|TEMP


Ruta: Ruta dónde será ubicada ( local o remota).
▪ COMPRESS=NO | YES | CHAR |
BINARY
▪ CVPBYTES=bytes
•Ejemplo:
Data prueba1;
Run;
Libname prueba ‘c:\prueba_dir’
DATA preuba.prueba2;
Run;
Indice
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:\'; •Los datasets EJMEPLO1, EJMEPLO2 y EJMEPLO3 se


•DATA TEST.EJEMPLO1; encuentran en las librerías WORK y TEST,; guardados de forma
•SET EJEMPLO1; temporal en la librería WORK y de forma permanente en la librería
TEST
•RUN;
• TITLE : Titulo en la ventana OUTPUT
•DATA TEST.EJEMPLO2;
•SET EJEMPLO2; • FOOTNOTE : Pies de pagina en la ventana OUTPUT
•RUN; • OPTIONS:
•DATA TEST.EJEMPLO4; ▪LS : Numero de caracteres por linea
•SET EJEMPLO3; ▪ PS: Numero de lineas por pagina
•RUN; ▪ NODATE : Elimina la cabecera por defecto
•OPTIONS LS=75 PS=50 NODATE NONUMBER; ▪ NONUMBER: Elimina la numeración de las páginas.
•TITLE 'dataset TEST.EJEMPLO2';
•FOOTNOTE 'dataset RESULTADOS';
•PROC PRINT DATA=TEST.EJEMPLO2;
•RUN;
•TITLE;
•FOOTNOTE;
Indice

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 / Operaciones dataset
Paso DATA : Operaciones

•DATA B; •La instrucción SET asigna al dataset del paso DATA los mismos
•SET A; datos, variables y propiedades que el dataset de la instrucción SET.
•RUN;
•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,
•DATA C; recodificación, ... en algún dataset se realiza mediante el paso DATA
•SET B; y la instrucción SET.
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
Paso DATA : Operaciones

•DATA AUXILIAR; •Guardar datos en un fichero externo


•SET TEST.EJEMPLO1;
• FILE :Exportar los datos de un dataset a la ruta y formato
•FILE 'A:\DATOS1.DAT' ;
deseados, pero sólo ficheros texto.
•PUT NUM_NIN 1-2 SUP 3 INIC $ 4-6 SEXO 7 EDAD 8-9;
•RUN;
•PUT :Posiciones de cada variable

•PROC SORT DATA=TEST.EJEMPLO1; •Ordenar datos en un dataset:


•BY NUM_NIN; •El procedimiento SORT se ordena el dataset según las variables
•RUN; especificadas en la instrucción BY.

•PROC SORT DATA=TEST.EJEMPLO2;


• Merge de datasets: La sentencia MERGE sirve para "cruzar" n
•BY NUM_NIN;
•RUN;
tablas dando como resultado m resultados de salida de datos. Es
•PROC SORT DATA=TEST. EJEMPLO3;
imprescindible que las tablas de entrada estén ordenadas por las
•BY NUM_NIN; variables de cruces. Debe llevar una sentencia BY con las variables
•RUN; de cruce. En el cuerpo del merge se permite cualquier sentencia SAS
•DATA TEST. EJEMPLO4; valida en dataset.
•MERGE TEST.EJEMPLO3 TEST.EJEMPLO2;
•BY NUM_NIN;
•RUN;
•PROC PRINT;
•RUN;
Paso DATA / Operaciones dataset
Paso DATA : Operaciones

•DATA TEST.EJEMPLO5; • Añadir casos:


•SET EJEMPLO.EJEMPLO4;
•RUN;
•PROC APPEND BASE=TEST.EJEMPLO5 DATA=TEST.EJEMPLO1 FORCE;
PROC APPEND :El dataset resultante es el dataset
•RUN;
especificado en la opción BASE, y a éste se le
•PROC PRINT; añaden todos los casos del dataset de
•RUN; 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 PASO DATA
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; •Sentencia condicional:


•SET TEST.RESULTADO8; •Se pueden seleccionar casos datos que cumplan cierta
•CENTRE=10; condición, a partir de la instrucción IF o equivalentemente
•IF EDAD < 50 THEN EDAD2=1; la instrucción WHERE:
•ELSE EDAD2=2;
▪ Sintaxis:
•IF NUM_NIN=5 THEN DO;
a) IF condicion THEN accion;
•INIC='ABC';
ELSE accion;
•SEXO=1;
b) IF condicion THEN DO;
•END;
accion1;
•RUN;
acccion2;
•PROC PRINT;
END;
•RUN;
Indice
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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); •KEEP: La instrucción KEEP permite guardar en el dataset creado
•SET TEST.PRUFINALES; sólo las variables allí mencionadas. Las demás variables son
•RUN; eliminadas del dataset resultante.

•DATA AUXILIAR3 (DROP= TEST RESULTADO);


•DROP: La instrucción DROP permite ELIMINAR del dataset las
•SET TEST.PRUFINALES;
•RUN;
variables allí mencionadas. Las demás variables continúan en el
dataset resultante.
Indice
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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 •FORMAT: Formato de las variables.


•SET TEST.PRUEFINALES;
•Sintaxis: FORMAT nombre_var ($ si es alfanumerica) logitud
•FORMAT EDAD 2. NOMBRE $40.
+’.’ ( Todos los formatos acaban en .)
•RUN;

•PROC FORMAT ; •PROC FORMAT. Permite utilizar formatos internos de SAS o crear
•VALUE VSI_NO 1=‘SI’ O=‘NO’;
formatos a medida mediante PROC FORMAT.
•RUN;

•DATA AUXILIAR5
•SET TEST.PRUFINALES;
•FORMAT APROBADO VSI_NO. EDAD 2.;
•RUN;
Indice
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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; •LABEL: Permite establecer etiquetas a las variables para su mejorar
•SET TEST.PRUFINALES; su comprensión.
•LABEL RSPFINAL =‘ RESULTADO PRUEBA FINAL’
•RUN;
Indice
01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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; •LENGTH: Permite establecer la longitud de los campos.


•SET TEST.PRUEBASFINALES;
•Sintaxis: Length nom_var longitud;
•LENGTH EDAD 2 NOMBRE $ 50;
•Nota ( Si es alfanumerica ira precedida de un $.
•RUN;
Indice

01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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
Funciones SAS

•ABS(EXPRESIÓN) •Valor Absoluto

•SQRT(EXPRESIÓN) •Raíz Cuadrada

•ROUND(EXPRESIÓN) •Redondear

•ROUND(EXPRESIÓN, PRECISIÓN) •Redondear con determinada precisión (la precisión es una potencia de 10

•EXP(EXPRESIÓN) •Exponencial

•LOG(EXPRESIÓN) •Logaritmo

•LOG2(EXPRESIÓN) •Logaritmo con base 2

•LOG10(EXPRESIÓN) •Logaritmo con base 10

•COS(EXPRESIÓN) •Coseno

•SIN(EXPRESIÓN) •Seno

•TAN(EXPRESIÓN) •Tangente
Indice

01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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

Funciones SAS

•MDY (MES,DIA,AÑO) •Formato fecha mes día año

•DAY(VAR_FECHA) •Retorna el día de una variable tipo fecha

•MONTH (VAR_FECHA) •Retorna el mes de una variable tipo fecha

•YEAR (VAR_FECHA) •Retorna el año de una variable tipo fecha

•DATEPART (EXPRESIÓN) •Retorna la parte de la fecha de una variable de tipo fecha_hora

•DHMS (FECHA,HOR, MIN,SEG) •Convierte a variable tipo fecha

•INTCK(UNIDAD, FEC1,FEC2) •Obtiene la distancia entre dos fechas en la unidad especificada


Indice

01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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

Funciones SAS

•INDEX •Busca una expresión de caracteres dentro de una cadena


• •
•COMPRESS •Elimina caracteres específicos de una cadena.

•LOWCASE •Convierte todas las letras del argumento a minúsculas

•UPCASE •Convierte todas las letras del argumento a mayúsculas
• •
•LENGTH •Retorna la longitud del argumento
• •
•LEFT •Alinea a la izquierda una expresión de caracteres
• •
•REVERSE •Da la vuelta a una cadena
• •
•SCAN •Selecciona una palabra en particular de una expresión de caracteres

•SOUNDEX •Codifica una cadena a sonidos para facilitar comparaciones

•SPEDIS •Determina la similitud entre dos palabras expresada cómo una distancia

•SUBSTR •Extraes una subcadena de un argumento
•TRANSLATE •Reemplaza caracteres específicos de un argumento
Indice

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

Procedimientos

• Sintaxis: ▪Procedimientos:
•PROC NOM_PRC DATA = nom_dataset OPCIONES ▪ DATA=nombre_dataset Esta opción permite especificar
ESPECIFICAS; cuál es el dataset de trabajo.
•WHERE CONDICIÓN; ▪ Las instrucciones específicas de cada procedimiento son
•BY VARIABLES; un requisito indispensable para el funcionamiento del mismo,
•WEIGHT VARIABLE_PESO; y suelen estar relacionadas con las variables que se
•OUTPUT OUT=dataset_salida; analizan.
•RUN; ▪ 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

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 •Procedure Añadir datos a un dataset


•CALENDAR •Procedure Calendario con fechas y citas
•CATALOG •Procedure Manipula los catálogos de SAS
•CHART •Procedure Gráficos de barras sencillos
•CIMPORT •Procedure Importación de datos de otras versiones de SAS
•COMPARE •Procedure Camparación de Bases de datos
•CONTENTS •Procedure Contenidos de un dataset
•COPY •Procedure Realiza copias de un dataset
•CORR •Procedure Correlación entre variables
•CPORT •Procedure Exportación de datos de otras versiones de SAS
•DATASETS •Procedure Manipulación de datasets (eliminar).
•DBCSTAB •Procedure Produce tablas de conversión a caracteres de doble-byte.
•DISPLAY •Procedure Visualizar titulos
•EXPLODE •Procedure Titulos grandes, vía explotar caracteres.
•EXPORT •Procedure Exportar datasets a texto (p. ej.)
•FORMAT •Procedure Dar etiquetas a los valores de las variables
•FORMS •Procedure Para crear etiquetas adesivas
•FREQ •Procedure Tablas de frecuencias

PROCEDIMIENTOS / PROCEDIMIENTES
FRECUENTES

Procedimientos SAS

FSLIST Procedure Examinar ficheros externos al SAS


•IMPORT •Procedure Importar datos (p. ej. en formato texto)
•MEANS •Procedure Resumir los datos
•OPTIONS •Procedure Opciones de la ventana OUTPUT
•PLOT •Procedure Diagramas de dispersión sencillos
•PMENU •Procedure Prepara Menus para ser utilizados por otros módulos de SAS (AF, FSP)
•PRINT •Procedure Listar datasets
•PRINTTO •Procedure Defini las rutas dónde almacenar las ventanas LOG y OUTPUT
•RANK •Procedure Crea Rangos a partir de variables.
•REGISTRY •Procedure Mantiene el registro de SAS.
•REPORT •Procedure Para realizar informes
•SORT •Procedure Ordenar un dataset
•SQL •Procedure Consultas a datasets mediante instrucciones SQL
•STANDARD •Procedure Produce variables estandarizadas
•SUMMARY •Procedure Estadísticos de Resumen
•TABULATE •Procedure Tablas
•TIMEPLOT •Procedure Diagramas de dispersión respecto el tiempo
•TRANSPOSE •Procedure Transpone datasets
•TRANTAB •Procedure Produce y mantiene tablas de traducción de códigos

•UNIVARIATE •Procedure Análisis univariados


Indice

01 INTRODUCCIÓN
02 PROCEDIMIENTOS Y PASO DATA
03 LIBRERIAS
04 PASO DATA
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


▪ El procedimiento PROC SQL utiliza el Lenguaje
•PROC SQL; Estructurado Query (SQL) para:
•Query-Expresion ; ▪ - recobrar y manipular conjuntos de datos SAS
•QUIT; ▪ - 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
04 PASO DATA
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 • Inner Join: La tabla resultante contendrá únicamente los registros
•SELECT * FROM lefttab as l, righttab as r WHEREl.continent=r.continent;
que sean comunes en ambas tablas.
•QUIT;
•Ó •Outer Join
•PROC SQL; CREATE TABLE FIEBRE.FINAL AS
• Left outer join: La tabla resultante contendrá los registros
•SELECT * FROM lefttab as l inner join righttab as ron (l.continent=r.continent);
•QUIT;
comunes en ambas tablas más los de la primera tabla que
•Left :
no se han cruzado con ninguna fila de la segunda tabla.
•PROC SQL; CREATE TABLE FIEBRE.FINAL AS • Right outer join:La tabla resultante contendrá los registros
•SELECT * FROM lefttab as l left join righttab as ron comunes en ambas tablas más los de la segunda tabla que
(l.continent=r.continent); no se han cruzado con ninguna fila de la primera tabla.
•QUIT;
• Full outer join : La tabla resultante contendrá los registros
•Right
comunes en ambas tablas más las filas de cada una de las
•PROC SQL; CREATE TABLE FIEBRE.FINAL AS
tablas que no se han cruzado con ninguna de la otra.
•SELECT * FROM lefttab as l right join righttab as r
•on (l.continent=r.continent);
•QUIT;
•Full
•PROC SQL; CREATE TABLE FIEBRE.FINAL AS
•SELECT *FROM lefttab as l full join righttab as r
•on (l.continent=r.continent);
•QUIT;
Indice

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

•Sintaxis: •Libname -> Sentencia para la declaración de librerías


•Libname libref engine-name <SAS/ACCESS-connectionn-opt>
<SAS/ACCESS-LIBNAME-opts> •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

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: • SQL SERVER:


•libname sqlS odbc dsn=ORINGENDATOS user=xxxxx
• Es necesario crear un origen de datos desde la opción de
password=xxxxx schema=xxxxx;
windows de ‘Administración de Dispositivos’.

•DB2 • DB2:
•libname DB2UDB db2 database=XXXXX user=xxxxx
• Es necesario tener catalogadas las bases de datos en el
password=xxxxx;
cliente DB2 para realizar la conexión.

•ORACLE • Oracle:
• libname Oracle oracle user=“xxxxxxx" password=“xxxxxxxx"
• Es necesario catalogar la base de datos en el
path=“xxxx" schema=‘xxxxx';
TNS_Names.ora para realizar la conexión a la base de
datos.

•TERADATA
• Teradata:
• libname terasas teradata database='ddbb' user='user' pw='pass'; • Es necesario tener catalogadas las bases de datos en el
cliente Teradata para realizar la conexión.
Indice
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
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
Macros : Variables

•Sintaxis: • Variables Macro:


•libname : • La instrucción %let permite asignar a un nombre un
•% let nombre = literal_nombre ; conjunto de caracteres. Las referencias a variables Macro ya
creadas siempre serán precedidas por el símbolo: “&”.Los
• Formula: nombres de variables Macro no pueden contener caracteres
• %let num=%eval (5*2); -> uso en formulas extraños cómo:; , espacio “ ‘ AND OR etc.

•Variables definidas por el sistema:


• Variables definidas por el sistema:
•sysdate
•Sysday •Lista do de variables definidas por el sistema
•Syslast
•syserr
• Variables definidas por el sistema:
•Variables definidas por el sistema:

• Se recomienda que empiece por letra o ‘_’. Para listar


•%let macr=%nrtsr(%pl); ( se asigna a macr el litera pl)
todas las variables %put_all_;
•%let plo = %str(proc print ; run;);
Indice
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: •Estructura general de una macro:


•% macro nombre macro;
Se puede introducir código SAS ( pasos data,
• expresion
procedimientos, funciones..).
•% mend nombre macro
Para invocar una macro es necesario el prefijo %
Para introducir comentarios se utiliza %*

Condiciones
• Condiciones :
% macro EJEMPLO1(info=); •Instrucción condicional:
% if &info=a then %do; • %IF ... %THEN..; %ELSE... ;
proc sort; data=prueba •Y son mas de una instrucion en los bloques
run; then o else se utiliza %DO; .. %END;
% else %if &info=b %then %do;
proc print noobs label; •Instrucción Repetitivas: (Ejemplo)
run; %do i=1:%to &num;
% else %put “Resultado” &INFO
%put &num “Resultado”;
%mend;
%end;
Indice
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 / PARAMETROS DE ENTRADA

Macros : Parámetros de entrada en las macros.

•Ejemplo: •Definición de los parámetros de entrada:


•% macro pl( data=,yvar=,xvar=);;
• proc plot data = &data;
• run;
•% mend; Definición Llamada
•LLamada:
•%pl (data=a,yvar>=y=xvar=x); %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
04 PASO DATA
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: •CPORT:
•Libname nom_lib ‘directorio_lib';
•El procedimiento para la compresión de los datos de
•proc cport lib=nomb_lib file=‘nombre-result.cpo';run;
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
04 PASO DATA
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: •CIMPORT:

•libname nom_lib ‘ruta_lib';


•El procedimiento para la descompresión de los
•proc cimport infile=‘ruta_archivo\nombre_archivo_comp.cpo' library=nomb_lib; datos de archivo cpo a una librería.
•run;

•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
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
12.1 PROC univariate
12.2 PROC Freq
PROCEDMIENTOS ESTADISTICOS / PROC UNIVARIATE

Procedimientos estadísticos : Proc Univariate

•Sintaxis: •Proc Univariate:


•El procedimiento PROC UNIVARIATE se utiliza para
•PROC UNIVARIATE DATA=FIEBRE.GRADOS;
• VAR EDAD;
cuando el objetivo del análisis es por ejemplo testar una
• OUTPUT OUT=U_EDAD MEAN=MITJANA MEDIAN=MEDIANA hipótesis o bien cualquier otro análisis más profundo de los
MODE=MODA; datos, es interesante explorar más detalladamente las
•RUN; variables y obtener otros estadísticos descriptivos así como
• PROC UNIVARIATE DATA=FIEBRE.GRADOS PLOT NORMAL; tests relativos a la distribución de los datos.
• VAR EDAD;
•RUN;
• PROC PRINT DATA=U_EDAD;
•RUN;
Indice

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
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:


•El procedimiento FREQ genera tablas de frecuencias. Este
•PROC FREQ DATA=FIEBRE.GRADOS;
procedimiento, también puede ser útil para observar la
•TABLES SEXO /OUT=F_SEXO;
calidad de los datos, comprobando si hay valores extraños o
•RUN;
faltantes.
•PROC FREQ DATA=FIEBRE.GRADOS;
•TABLES SEXO /TESTP=(0.4 0.6);
•RUN;

También podría gustarte