apostila sas unicamp

Upload: dri-chispirita

Post on 06-Jul-2015

994 views

Category:

Documents


13 download

TRANSCRIPT

INTRODUO AO SASNvel Bsico

UNICAMP/CENAPAD-SP

2 CONTEDO1 - INTRODUO1.1 - HISTRICO 1.2 - ATUALMENTE 1.3 - DEFINIO BSICA 1.4 - MDULOS DO SAS 1.5 - CONCEITOS BSICOS 1.6 - ARQUIVOS SAS 1.7 - ESTRUTURA DOS ARQUIVOS SAS 1.8 - NOMECLATURA PARA ARQUIVOS E VARIVEIS 1.9 - SINTAXE DOS COMANDOS 1.10 - AMBIENTE WINDOWS pag.04 pag.04 pag.04 pag.05 pag.06 pag.07 pag.08 pag.09 pag.10 pag.11 pag.12 pag.19 pag.19 Pag.21 pag.22 pag.23 pag.24 pag.25 pag.26 pag.27 pag.28 pag.30 pag.31 pag.32 pag.33 pag.33 pag.34 pag.34 pag.35 pag.35 pag.36 pag.38 pag.40 pag.43 pag.43 pag.44 pag.45 pag.46 pag.48 pag.49 pag.52 pag.53 pag.54 pag.55 pag.56 pag.57 pag.58 pag.59 pag.60

2 - ESTRUTURA DATA STEP2.1 - INTRODUO 2.2 - COMANDO DATA 2.3 - COMANDO INFILE 2.4 - COMANDO SET 2.5 - COMANDO INPUT 2.5.1 - INPUT LISTADO 2.5.2 - INPUT COLUNADO 2.5.3 - INPUT FORMATADO 2.5.4 - DESCRIO DE UM CAMPO DATA 2.5.5 - CONTROLES ESPECIAIS DO INPUT 2.5.6 - DETALHES DO COMANDO INPUT 2.6 - COMANDO CARDS OU DATALINES

3 - ESTRUTURA PROC STEP3.1 - INTRODUO 3.1.1 - COMANDO VAR 3.1.2 - COMANDO BY 3.1.3 - COMANDO TITLE 3.1.4 - COMANDO FOOTNOTE 3.2 - PROCEDIMENTO PRINT 3.3 - PROCEDIMENTO SORT

4 - ARQUIVO DE MENSAGENS "SAS Log" 5 - COMANDOS BSICOS DE PROGRAMAO EM DATA STEP5.1 - COMANDO LIBNAME 1 LABORATRIO 2 LABORATRIO 5.2 - COMANDO DE ATRIBUIO (=) 5.3 - COMANDO RETAIN 5.4 - COMANDO IF-THEN/ELSE 5.5 - COMANDO WHERE 5.6 - COMANDO DO/END 5.7 - COMANDO DO/END INTERATIVO 5.8 - COMANDO DO/WHILE 5.9 - COMANDO DO/UNTIL 5.10 - COMANDO DROP e KEEP 5.11 - OPES DE ARQUIVOS SAS 5.12 - COMANDO DELETE 5.13 - COMANDO OUTPUT

35.14 - COMANDO LENGTH 3 LABORATRIO pag.62 pag.63 pag.66 pag.66 pag.67 pag.67 pag.67 pag.68 pag.69 pag.69 pag.71 pag.72 pag.75 pag.75 pag.75 pag.77 pag.77 pag.77 pag.79 pag.79 pag.79 pag.80 pag.80 pag.80 pag.81 pag.81 pag.83 pag.84 pag.84 pag.86 pag.87 pag.88 pag.90 pag.90 pag.93 pag.98 pag.103 pag.105 pag.105 pag.107 pag.109 pag.109 pag.111 pag.113 pag.114

6 - FUNES DO SAS6.1 - INTRODUO 6.2 - FUNES DE TRATAMENTO DE CARACTER 6.2.1 - FUNO UPCASE 6.2.2 - FUNO LOWCASE 6.2.3 - FUNO SUBSTR 6.2.4 - FUNO COMPRESS 6.2.5 - FUNO LENGTH 6.2.6 - FUNO SCAN 6.2.7 - FUNO INDEX 6.3 - FUNES DE TRUNCAMENTO 6.3.1 - FUNO INT 6.3.2 - FUNO ROUND 6.4 - FUNES ESTATSTICAS DESCRITIVAS 6.4.1 - FUNO SUM 6.4.2 - FUNO MEAN 6.5 - FUNES DE TRATAMENTO DE DATA E HORA 6.5.1 - FUNO MDY 6.5.2 - FUNES: DAY, MONTH, YEAR 6.5.3 - FUNO TODAY 6.5.4 - FUNO TIME 6.5.5 - FUNES: HOUR, MINUTE, SECOND 6.6 - FUNES MACRO 6.6.1 - FUNO %SYSFUNC 4 LABORATRIO

7 - COMANDOS DE CONFIGURAO7.1 - COMANDO OPTIONS 7.2 - COMANDO LABEL 7.3 - COMANDO FORMAT 7.4 - COMANDO ODS

8 - PROCEDIMENTOS ESTATSTICOS BSICOS8.1 - PROCEDIMENTO MEANS 8.2 - PROCEDIMENTO FREQ 8.3 - PROCEDIMENTO TABULATE 5 LABORATRIO

9 - RECURSO DE FORMATAO ESPECIAL9.1 - PROCEDIMENTO FORMAT 6 LABORATRIO

10 - COMBINAO DE ARQUIVOS SAS10.1 - CONCATENAO 10.2 - COMBINAO ORDENATA (MATCH-MERGING) 7 LABORATRIO

11 - BIBLIOGRAFIA

4 1 - INTRODUO 1.1 - HISTRICO Dcada de 60; North Caroline University; Censo Agro-pecurio Norte-americano; Conjunto de sub-rotinas (FORTRAN, IBM/370); SAS Institue Inc. (1975); 1.2 - ATUALMENTE 40.000 Instalaes em clientes, em 110 paises; 96 das 100 maiores empresas do mundo, utilizam SAS. (Fortune 500 List - 2005); SAS a maior empresa de software do mundo de capital privado; Idiomas: Chins, Francs, Alemo, Hebreu, Italiano, Japons, Russo, Espanhol, Polons, Hungaro, Sueco, Coreano, etc.

5 1.3 - DEFINIO BSICA um software integrado para anlise de dados que consiste de vrios produtos, que proporcionam: - Recuperao de dados; - Gerenciamento de arquivos; - Anlise estatstica; - Acesso a Banco de Dados (ORACLE, DB2, etc); - Gerao de grficos; - Gerao de relatrios; - Gerao de aplicativos; - Solues de negcios; um software de grande portabilidade, podendo operar em diversos ambientes computacionais: - Mainframes IBM ( CMS, MVS, OS, OS/390, Z/OS ) - DIGITAL ( VMS, OpenVMS ) - Micros PC ( DOS, Famlia Windows, OS/2 ) - UNIX ( Solaris, AIX, HP-UX, Irix, Linux )

6 1.4 - MDULOS DO SAS

SAS/BASE SAS/STAT SAS/GRAPH SAS/OR

Mdulo bsico, obrigatrio em toda instalao; Mdulo estatstico; Mdulo grfico ( Histogramas, plots, ... ); Mdulo de anlise e pesquisa operacinal (Programao linear, Anlise de caminho crtico); Mdulo para anlise de controle de qualidade; Mdulo de econometria (Sries temporais, Modelagem de Equaes Simultneas); Mdulo de programao interativa e amigvel; Mdulo para anlise e operao de matrizes; Mdulo para acesso aos diversos tipos de Banco de Dados; entre ambientes

SAS/QC SAS/ETS

SAS/ASSIST SAS/IML SAS/ACCESS

SAS/CONNECT Mdulo para conexo operacionais heterogneos; SAS/AF SAS/FSP

Mdulo para desenvolvimento de aplicaes; Mdulo para agilizar o acesso a arquivos;

7 1.5 - CONCEITOS BSICOS

DATA SET

Arquivo de dados com estrutura SAS;

OBSERVAO

Registro de um arquivo de dados SAS;

JOB SAS

Arquivo com programa SAS ( um conjunto de DATA Step's e PROC Step's );

DATA STEP

Diviso lgica de um programa SAS, no qual se cria e altera um, ou vrios arquivos SAS ( Data Set's );

PROC STEP

Diviso lgica de um programa SAS, no qual se analisa e manipula os dados contido num arquivo SAS ( Data Set's );

OBS: A funcionalidade do Sistema SAS foi construda em torno de quatro idias bsicas no tratamento de dados: Acessar dados; Administrar dados; Analisar dados; Apresentar dados;

8 1.6 - ARQUIVOS SAS

Todos os dados devero estar armazenados em arquivos com estrutura SAS (DATA Set's), para serem analisados pelos procedimentos do SAS ( PROC's ).

Os arquivos SAS podem ser temporrios ou permanentes.

Em um nico programa SAS ( Job SAS ), vrios arquivos podero ser criados e analisados.

Os arquivos SAS, depois de criados, podem ser analisados pelos procedimentos SAS.

9 1.7 - ESTRUTURA DOS ARQUIVOS SASO arquivo SAS um conjunto de valores de dados arrumados em um formato de tabela.NOME CARLOS GILBERTO RICARDO . . . ALICE MARCIA SEXO IDADE ALTURA M M M . . . F F 12 25 30 . . . 28 22 1.70 1.65 1.80 . . . 1.68 1.75

As colunas nas tabelas so chamadas de variveis: S Variveis correspondem aos campos de dados; S Cada varivel recebe um nome; S Existem dois tipos de variveis: caracter (at 32K caracteres - 32KBytes) numrica (Representao IEEE - 8Bytes) As linhas na tabela so chamadas de observaes (ou registros). No existem limites para o nmero de observaes. Um Arquivo SAS dividido em duas partes: Descritora Contm a descrio do arquivo: Tamanho do arquivo,nmero de registros, nome, tipo, tamanho e formato de variveis, etc;

Dados

Contm os dados do arquivo.

10 1.8 - NOMECLATURA PARA ARQUIVOS E VARIVEIS

Todo nome de arquivo e varivel deve seguir as seguintes regras: S Possuir de 1 32 caracteres; S Comear com letra (A-Z); S Pode continuar com nmeros, letras ou travesses( _ ).

Ex.1:DATA EXEMPLO1 ; INFILE C:\TEMP\CADASTRO.TXT; INPUT PRIMEIRO_NOME $ 1-8 SEXO $ 10 IDADE 13-14 ALTURA 16-19 ; RUN;

11 1.9 - SNTAXE DOS COMANDOS

Todo comando SAS comea com uma palavra-chave, de identificao, e termina com ponto e virgula (;). S Os comandos podem comear e terminar em qualquer parte da linha; S Um comando pode se extender em diversas linhas; S Vrios comandos podem estar na mesma linha.

Ex.2:DATA EXEMPLO1 ; INFILE C:\TEMP\DADOS.DATt; INPUT NOME $ 1-8 SEXO $ IDADE $ 13-14 ALTURA 16-19 ; RUN; PROC PRINT DATA=EXEMPLO1 ; RUN ; PROC FREQ DATA=EXEMPLO1 ; TABLES IDADE*ALTURA ; RUN ;

12 1.10 - AMBIENTE WINDOWS Para acessar o sistema SAS e necessrio que se esteja no ambiente WINDOWS do seu micro, abrir a janela SAS e execut-lo.

13 JANELA DE OPES DE CONFIGURAOTools Options System...

14

15 OPES DE CONFIGURAO DO EDITORTools Options Enhanced Editor...

16

17

CONFIGURAO DE TECLADOTools Options Keys

18

19

2 - ESTRUTURA DATA Step2.1 - INTRODUO a seo de um programa SAS aonde se orgnaniza e administra os dados, utilizando comandos de programao 4GL do SAS/BASE, baseados em uma lgica de processamento. -A maioria dos comandos utilizados s podem ser executados na estrutura DATA Step; -Os comandos seguem uma hierarquia, ou seja, a execuo de um determinado comando depende da execuo de um comando anterior; -Os arquivos processados em um DATA Step, normalmente, sero processados sequencialmente, ou seja, registro aps registro; -O DATA Step representa, internamente codificado, um loop, que repete todos os comandos, registro aps registro, at encontrar o ltimo registro, finalizando o DATA Step e seguindo para o prximo Step; -A execuo de um programa SAS, obedece a duas fases: Compilao e Execuo; -Os comandos em um DATA Step, podem ser divididos em: Comandos de Definio Comandos de Execuo - Funcionalidade, durante a compilao; - Funcionalidade, durante a execuo.

OBS: Comandos de Definio no possuem nenhuma ao durante a execuo.

20 Fluxo de Execuo

Inicio do DATA Step

Abrir arquivo para gravar

Abrir arquivo para leitura

Ler novo registro

processa registro

Salvar registro no arquivo para gravaao

NAO

Ultimo registro

SIM Fim do DATA Step

21 2.2 - Comando DATA Comando de Definio; Comando que sempre inicia um DATA Step; Abre um novo arquivo DATA Set, vazio.

DATA ;

Ex.3:DATA ENDERECO ; DATA ARQ1 ARQ2 ARQ3 ; DATA ENT.CADASTRO ; DATA ; DATA _NULL_;

22 2.3 - Comando INFILE Comando de Definio; Comando que identifica e abre um arquivo externo de dados, somente para leitura (no um arquivo no formato do SAS); Normalmente um arquivo de dados no formato texto (somente texto); Este comando deve ser posicionado aps o comando DATA e antes do comando INPUT. INFILE "" [opes] ;Opes: LRECL= Tamanho do registro; PAD Completa de brancos os registros; MISSOVER Previne o SAS de l um novo registro para completar os dados de uma varivel; DLM= Especifica um delimitador entre os campos.

Ex.4:INFILE "C:\DADOS\ARQ1.TXT" DLM=,; INFILE "A:\CADASTRO.PRN" ; INFILE 'C:\SAS\CAD.DAT' LRECL=380 PAD ;

DATA EXEMPLO ; INFILE 'C:\TESTE\DADOS.TXT' MISSOVER; . . . . . . . . .

23 2.4 - Comando SET Comando de Execuo; Este comando abre um arquivo de dados DATA Set (formato SAS), somente para leitura, e que j exista; O comando deve ser posicionado, na maioria das vezes, no incio de um DATA Step, para permitir ao compilador ler a estrutura do arquivo especificado e armazen-la na memria;

SET ;

Ex.5:DATA EXEMPLO ; SET CADASTRO ; . . .

24 2.5 - Comando INPUT Comando de Execuo; O comando INPUT serve para descrever ao SAS como esto armazenados e organizados os dados em arquivos textos, que foram especificados pelo comando INFILE ou pelos dados digitados no programa, aps o comando CARDS;

Todo arquivo aberto pelo comando INFILE, sempre necessitar de um comando INPUT para ler o seu contedo;

O comando INPUT ir ler registro a registro (leitura sequncial) at encontrar "fim de arquivo (EOF)", e ir atribuir nomes (Variveis) para cada campo de um registro;

Existem tres tipos bsicos de comando INPUT:

2.5.1 - INPUT LISTADO 2.5.2 - INPUT COLUNADO 2.5.3 - INPUT FORMATADO

25 2.5.1 - INPUT LISTADO - L as variveis na ordem que aparecem na linha de dados, de acordo com um delimitador. Os dados no precisam estar alinhados e colunados; INPUT [$]varivel Nome da varivel que ser associada a uma coluna de dados. Caracter opcional que indica que a varivel s ir conter dados alfanumricos. Sem o $, significa que a varivel ser numrica

$

OBS:Por default o delimitador ser o caracter branco , e o tamanho de qualquer varivel ser de at 8 bytes.

Ex.6:1 C C S 2 A A I 3 R R L 4 L L V 5 O A I A 6 S F F 7 8 M 2 9 10 1 6 2 1 11 8 1 12 13 1 7 1 14 7 8 6 15 0 7 5 16 6 2 6 17 8 . 0 18 . 0 . 5 19 0 20

DATA FICHA ; INFILE A:\CADASTRO.TXT; INPUT NOME $ SEXO $ IDADE ALTURA PESO ; RUN;

26 2.5.2 - INPUT COLUNADO - L as variveis especificando a sua posio na linha de dados (posio inicial e posio final). As variveis devero estar alinhadas e colunadas. INPUT [$] - [.decimal] ;varivel $ Nome da varivel, que ser associada a uma coluna de dados. Caracter opcional que indica que a varivel s ir conter dados alfanumricos. Sem o $, significa que a varivel ser numrica. Valor que indica a posio inicial da varivel na linha de dados. Valor que indica a posio final da varivel na linha de dados. Valor opcional, indica o nmero de posies decimais de uma varivel numrica.

incio fim .decimal

Ex.7:1 C C S 2 A A I 3 R R L 4 L L V 5 O A I A 6 S 7 8 9 M F F 10 11 1 2 2 12 8 6 1 13 14 1 1 1 15 7 7 6 16 0 8 5 17 6 7 6 18 8 2 0 19 . . . 20 0 0 5

DATA FICHA ; INFILE A:\CADASTRO.TXT; INPUT NOME $ 1-8 SEXO $ 9 IDADE 11-12 ALTURA 14-16 .2 PESO 17-20 ; RUN;

27 2.5.3 - INPUT FORMATADO - L as variveis especificando o tamanho e opcionalmente, o formato do campo, na linha de dados. - o tipo de INPUT mais poderoso e complexo do SAS. INPUT [$] ou [fomatow.d] ;varivel $ Nome da varivel, que ser associada a uma coluna de dados. Caracter opcional que indica que a varivel s ir conter dados alfanumricos. Sem o $, significa que a varivel ser numrica. Valor que indica o tamanho de um campo na linha de dados. Valor que indica o tamanho de um campo numrico com casas decimais. Campo opcional. Nome de um formato especial de leitura de dados: BINARYw.d L campo numrico no formato binrio e o converte para decimal; COMMAw.d L campo numrico com vrgulas e as retira; Ew.d L campo numrico com notao cientfica; HEXw. L campo numrico em hexadecimal; DDMMYYw. L campo no formato padro de datas dd/mm/yyyy.

w. w.d

formatow.d

28 2.5.4 - Descrio de um campo DATA Campos que representam datas necessitam que sejam identificados pelo SAS atravs de um formato de leitura e armazenados como numricos; O valor numrico armazenado representa o nmero de dias em relao a uma data base SAS.

01JAN1959 -365

01JAN1960 store 0 display

01JAN1961 366

01/01/1959

01/01/1960

01/01/1961

um campo que obrigatoriamente deve ser lido com um formato de leitura para identificar a formatao da data. Formatos: DATE9. DDMMYY10. 01JAN1960 01/01/1960

Formato padro de uma constante data no SAS: DDMMMYYYYD 01JAN1960"d

29

Ex.8:1 C C 2 A A 3 R R 4 L L 5 O A 6 S 7 8 9 M F 10 11 1 2 12 8 6 13 14 1 1 15 7 7 16 0 8 17 6 7 18 8 2 19 . . 20 0 0

DATA FICHA ; INFILE A:\CADASTRO.TXT; INPUT NOME $ 7. SEXO $ 1. IDADE 3. ALTURA 4.2 PESO 4. ; RUN;

Ex.9:

1

2

3

4

5

6

7

8

9

1 0

1 1

1 2

1 3

1 4

1 5

1 6

1 7

1 8

1 9

2 0

2 1

2 2

2 3

2 4

2 5

2 6

2 7

R J

2

0 1

4 5 5 0

6 0

3 0 0 0

0 0

6 , 9 ,

7 4

3 9 6 4

, ,

9 2

9 6

2 8 5 6

8

F 1

. 2

2 E 5 5 E 5

S P 1

C C 1

DATA EXEMPLO2 ; INFILE A:\NUMEROS.PRN; INPUT UF $ 2. CEP 8. POP COMMA9. VALOR1 HEX3. VALOR2 E5. ; RUN; PROC PRINT ; RUN ; SAS OBS UF CEP POP VALOR1 VALOR2 1 2 RJ SP 20456300 11500000 6739992 9464265 2191 1740 120000 12500000

30

2.5.5 - CONTROLES ESPECIAIS DO INPUT Posicionadores de COLUNA ( @ , + ) @n +n Move a leitura para a coluna n ; Move a leitura n colunas ;

Posicionadores de LINHA ( # , / ) #n / Ex.10:1 2 3 4 5 6

Move a leitura para a linha n ; Avana a leitura em uma linha ;7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 D E 2 d e

1 D E 2 d e

1 D E 2 d e

1 D E 2 d e

1

B

B

B

B

C

C

C

C

F 2

F b b b b c c c c

f

f

DATA POSICAO ; INFILE "C:\SAS\POS.DAT" ; INPUT A $ @10 B $ 4. +3 C $ 4. / D $ 1-4 / E $ @8 F $ #2 D1 $ 4. ; RUN; PROC PRINT ; RUN ; The SAS System OBS 1 2 A 11111 22222 B BBBB bbbb C CCCC cccc D DDDD dddd E EEEE eeee F FF ff D1 DDDD dddd

31

2.5.6 - DETALHES DO COMANDO INPUT- Em campos numricos, no permitido "brancos" entre os nmeros; - Sinal (+ - ), ponto decimal ( . ) e notao cientfica para expoente ( E ), so permitidos em campos numricos; - Campos tipo caracter podem ter, no mximo, 32K de caracteres; - permitido "brancos" em qualquer posio em campos tipo caracter; - Campos em branco (sem informao) so considerados como "missing value" (valor perdido). - Os campos de um registro de dados podem ser lidos em qualquer ordem.INPUT PESO 17-20 NOME $ 1-8 IDADE 11-12 SEXO $ 9 ;

- Campos ou partes de um campo podem ser relidos.INPUT NOME $ 1-8 PREFIXO $ 1-3 ENDERECO $ 10-40 APT $ 38-40 ;

- Dados caracteres sero sempre alinhados pela esquerda, e os dados numricos sempre alinhados pela direita; - Os tipos de INPUT , podem ser combinados num nico comado INPUT ; - Detalhes de leitura:INPUT JAN 3. FEV 3. MAR 3. ABR 3. MAI 3. JUN 3. ; INPUT (JAN FEV MAR ABR MAI JUN) (3.) ; INPUT (MES1 MES2 MES3 MES4 MES5 MES6) (3.) ; INPUT (MES1-MES6) (3.) ;

32

2.6 - Comando CARDS ou DATALINESComando de Definio; Indica ao SAS que os dados utilizados em um DATA Step esto digitados no programa, logo aps o comando CARDS ou DATALINES; ltimo comando dentro de um DATA Step, antes do comando RUN; O ; indica fim de dados e deve ser posto, sozinho, em uma linha; Utilizado junto com o comando INPUT, quando apenas se deseja efetuar alguns testes de execuo do DATA Step, no necessitando abrir um arquivo de leitura com o comando INFILE.

Ex.11:DATA FICHA ; INPUT NOME $ SEXO $ IDADE ALTURA PESO ; CARDS; Antnio M 32 1.78 78 Julia F 25 1.70 65 ; RUN;

DATA FICHA ; INPUT NOME $ 1-8 SEXO $ 9 IDADE 11-12 ALTURA 14-16 .2 PESO 17-20 ; DATALINES; Maria F 36 16857.8 Josefina F 42 15967.9 Tom M 56 18295.8 ; RUN;

33

3 - ESTRUTURA PROC Step 3.1 - INTRODUO a seo de um programa SAS aonde se analisa os dados de um arquivo SAS, utilizando-se procedimentos especficos para cada tipo de analise. - A maioria dos procedimentos SAS geram relatrios tcnicos; - Todos os procedimentos iniciam com a palavra PROC seguida do nome especfico do procedimento ou rotina desejada; - Os comandos em uma PROC no seguem uma hierarquia, ou seja, podem ser colocados em qualquer ordem dentro da PROC; PROC [opes] ; [comando] ; [comando] ; RUN ; rotina Palavra-chave que identifica o procedimento a ser executado. Parmetros opcionais de configurao para execuo do procedimento. Comandos de procedimento. detalhamento na execuo do

opes

comando

RUN

Comando para execuo do procedimento SAS. Necessrio no ltimo procedimento do programa SAS.

34

3.1.1 - Comando VAR Especifca as variveis do arquivo SAS que sero processadas pelo procedimento.

VAR ... ;

3.1.2 - Comando BY

Especifca uma ou mais variveis que permitiro o processamento em grupos;

BY ... ;

35

3.1.3 - Comando TITLEComando livre e de Descrio, pode ser codificado em qualquer parte do programa, no estando preso a uma estrutura Data step ou Proc step. Especifca de 1 at 10 ttulos para o relatrio a ser gerado pelo procedimento. TITLE "" ; TITLE1 "" ; ... TITLE10 "" ; OBS: Um ttulo permanece ativo at que seja modificado, ou eliminado, com o comando: TITLE;

3.1.4 - Comando FOOTNOTEComando livre e de Descrio, pode ser codificado em qualquer parte do programa, no estando preso a uma estrutura Data step ou Proc step. Especifca de 1 at 10 rodaps para o relatrio a ser gerado pelo procedimento. FOOTNOTE "" ; FOOTNOTE1 "" ; ... FOOTNOTE10 "" ; OBS: Um rodap permanece ativo at que seja modificado, ou eliminado, com o comando: FOOTNOTE;

36

3.2 - Procedimento PRINT

Procedimento do SAS que imprime, na sada padro, os dados contidos nos arquivos SAS. A sada padro , normalmente, a janela OUTPUT.

PROC PRINT [opes] ; VAR ; BY ; SUM ;opes DATA= DOUBLE NOOBS UNIFORM LABEL SPLIT= Nome do arquivo SAS; Espacejamento duplo; Suprime a coluna com o nmero de cada observao do arquivo; Formata todas as paginas uniformemente; Imprime os "label's" das variveis; Especifica um caracter do label para indicar a quebra da descrio;

VAR

Especifica uma lista de variveis que sero impressas; Especifica a quebra ou agrupamento do relatrio, por uma ou mais variveis; Especifica uma ou mais variveis numricas que sero totalizadas;

BY

SUM

37

Ex.12:TITLE "Relatrio de Fucionarios" ; PROC PRINT DATA=EXEMPLO1 NOOBS ; VAR NOME FUNCAO ; RUN ; Relatrio de Funcionarios NOME ANTUNES TERESA CLAUDIA MARCOS JULIO FUNCAO ANALISTA ANALISTA PROG PROG OPER

Ex.13:TITLE "Relatrio de Salrios" ; FOOTNOTE " FONTE: DH " ; PROC PRINT DATA=EXEMPLO1 ; VAR NOME FUNCAO SALARIO ; SUM SALARIO ; RUN ; Relatrio de Salrios OBS 1 2 3 4 5 NOME FUNCAO ANALISTA ANALISTA PROG PROG OPER SALARIO 1800 1650 1200 1200 850 ======= 6700

ANTUNES TERESA CLAUDIA MARCOS JULIO

FONTE: DH

38

3.3 - Procedimento SORT

Procedimento do SAS que reordena os registros dos arquivos por uma ou mais variveis, em ordem ascendente ou descendente.

No possui sada impressa.

Pode gerar arquivo ordenado.

PROC SORT [opes] ; BY ;opes DATA= OUT= Nome do arquivo SAS para ser ordenado; Nome do arquivo SAS, ordenado. Se no for utilizada a opo, a ordenao ser feita em cima do arquivo original; Especifca uma ou vrias variveis como chaves de ordenao;

BY

OBS: A ordenao sempre feita na ordem ascendente. Para ordenar na ordem descendente necessario colocar o parmetro descending, antes da varivel a ser ordenada, no comando BY.

39

Ex.14:PROC SORT DATA=EXEMPLO OUT=ORDENA ; BY FUNCAO ; RUN ; PROC PRINT DATA=ORDENA NOOBS ; BY FUNCAO ; VAR NOME SALARIO ; SUM SALARIO ; RUN ; The SAS System ----------------------------- FUNCAO=ANALISTA ----------------------------NOME ANTUNES TERESA FUNCAO SALARIO 1800 1650 ------3450

------------------------------- FUNCAO=OPER ------------------------------NOME JULIO SALARIO 850

------------------------------- FUNCAO=PROG ------------------------------NOME SALARIO CLAUDIA MARCOS FUNCAO 1200 1200 ------2400 ==== 6700

40 4 - Arquivo de Mensagens - "SAS Log" Ao se executar um programa SAS, gerado um relatrio de mensagens com notificaes e erros da execuo do programa (janela LOG). Muito til, deve ser sempre analisado, principalmente quando no aparecer o relatrio com os resultados (janela OUTPUT), ou quando este relatrio aparecer com problemas. Ex.15:DATA EXEMPLO1 ; INFILE "C:\DADOS.TXT" ; INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO 18-23 ; RUN; PROC PRINT DATA=EXEMPLO1 NOOBS ; VAR NOME FUNCAO ; RUN ; SAS Log NOTE: Copyright(c) 1989 by SAS Institute Inc., Cary, NC USA. NOTE: SAS (r) Proprietary Software Release 8.2 Licensed to UNIVERSIDADE ESTADUAL DE CAMPINAS, Site 0004267003. 1 2 3 DATA EXEMPLO1 ; INFILE "C:\DADOS.TXT" ; INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO 18-23 ;

NOTE: The infile "C:\DADOS.TXT" is: FILENAME=C:\DADOS.TXT, RECFM=V,LRECL=132 NOTE: 5 records were read from the infile "C:\DADOS.TXT". The minimum record length was 16. The maximum record length was 23. NOTE: The data set WORK.EXEMPLO1 has 5 observations and 4 variables. NOTE: The DATA statement used 2.68 seconds. 4 5 6 PROC PRINT DATA=EXEMPLO1 NOOBS ; VAR NOME FUNCAO ; RUN ;

41 Ex.16:DATA EXEMPLO1 ; INFILE 'C:\TEMP\LEITURA.DAT';

INPUT NOME $1-8 SEXO $10 FUNCAO# $11-17 SALARIO 18-23 ;RUN; PROC PRINT DATA=EXEMPLO1 NOOBS VAR NOME FUNCAO ; RUN ;SAS Log 17 DATA EXEMPLO1 ; 18 INFILE 'C:\TEMP\LEITURA.DAT'; NOTE: SCL source line. 19 INPUT NOME $1-8 SEXO $10 FUNCAO# $11-17 SALARIO 18-23 ; 22 76 ERROR 22-322: Syntax error, expecting one of the following: a name, an integer constant, (. ERROR 76-322: Syntax error, statement will be ignored. 20 RUN;

NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set WORK.EXEMPLO1 may be incomplete. When this step was stopped there were 0 observations and 3 variables. WARNING: Data set WORK.EXEMPLO1 was not replaced because this step was stopped. NOTE: DATA statement used: real time 0.02 seconds cpu time 0.01 seconds

21 22 PROC PRINT DATA=EXEMPLO1 NOOBS NOTE: SCL source line. 23 VAR NOME FUNCAO ; --- ---22 202 ERROR 22-322: Syntax error, expecting one of the following: ;, DATA, DOUBLE, HEADING, LABEL, N, NOOBS, OBS, ROUND, ROWS, SPLIT, STYLE, UNIFORM, WIDTH. ERROR 202-322: The option or parameter is not recognized and will be ignored. 24 RUN ; NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE PRINT used: real time 0.01 seconds cpu time 0.01 seconds

42 Ex.17:

DATA EXEMPLO1 ; INFILE 'C:\TEMP\LEITURA.DAT';

INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO 18-23 ;RUN; PROC PRINT DATA=EXEMPLO1 NOOBS ; VAR NOME FUNCAO SALARIO ; SUM SALARIO ; RUN ;SAS Log 58 59 60 61 DATA EXEMPLO1 ; INFILE 'C:\TEMP\LEITURA.DAT'; INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO $18-23 ; RUN;

NOTE: The infile 'C:\TEMP\LEITURA.DAT' is: File Name=C:\TEMP\LEITURA.DAT, RECFM=V,LRECL=256 NOTE: 5 records were read from the infile 'C:\TEMP\LEITURA.DAT'. The minimum record length was 16. The maximum record length was 23. NOTE: SAS went to a new line when INPUT statement reached past the end of a line. NOTE: The data set WORK.EXEMPLO1 has 4 observations and 4 variables. NOTE: DATA statement used: real time 0.02 seconds cpu time 0.01 seconds

62 63 PROC PRINT DATA=EXEMPLO1 NOOBS; 64 VAR NOME FUNCAO SALARIO ; ERROR: Variable FUNCAO not found. 65 SUM SALARIO; ERROR: Variable SALARIO in list does not match type prescribed for this list. 66 RUN ; NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE PRINT used: real time 0.01 seconds cpu time 0.01 seconds

43 5 - COMANDOS BSICOS DE PROGRAMAO EM DATA STEP 5.1 - Comando LIBNAMEComando opcional de configurao que define uma ou mais reas de trabalho e armazenamento (diretrios), para os arquivos SAS (Data Set's). Define o primeiro nvel de um nome de arquivo, "apelido". [apelido]. O comando LIBNAME, normalmente, colocado antes do comando DATA, e s ser necessrio ser executado uma nica vez durante uma sesso SAS WINDOWS. LIBNAME "" ; apelido Palavra de no mnimo 1 e no mximo 8 caracteres, que identifica o primeiro nvel em um nome de arquivo. Nome de um diretrio que j exista no seu ambiente.

diretrio

OBS: O SAS define uma rea padro, temporria, de trabalho, de apelido work. Ex.18:LIBNAME IN "C:\ALUNO" ; DATA IN.EXEMPLO ; INFILE "A:\CADASTRO" ; INPUT NOME $ 1-30 SEXO $ 31 END $ 32-60 ; PROC PRINT DATA=IN.EXEMPLO NOOBS ; VAR NOME ENDERECO ; RUN ;

44 1 LABORATRIOMontar um programa SAS que leia um arquivo de dados externo (no SAS) e gere um arquivo no formato SAS (Data Set), permanente. 1- Criar um arquivo SAS, permanente, de nome CADASTRO, no diretrio c:\curso\sas (Utilize os comandos LIBNAME e DATA ); 2 - Abra o arquivo de dados externo de nome CADASTRO.DAT no diretrio c:\curso\sas (Utilize o comando INFILE ). O Tamanho do registro de dados de 130 bytes; 3 - Leia os dados deste arquivo ( Utilize o comando INPUT, colunado ou formatado ). Sabendo-se que o contedo do arquivo est dividido em diversos campos na seguinte ordem:Nome do Campo NOME SEXO IDADE PESO ALTURA ANIVERSARIO ESTADO CIVIL FILHOS RG CPF EMPRESA FUNCAO ADMISSAO SALARIO Tipo do Campo Caractere Caractere Numrico Numrico Numrico Numrico Caractere Numrico Caractere Caractere Caractere Caractere Numrico Numrico Tamanho do Campo 30 1 2 6 4 10 1 2 15 11 15 12 9 12 2 2 2 Decimais Posio Inicial 1 31 32 34 40 44 54 55 57 72 83 98 110 119 Campo formatado: Ex 18JAN2005 Campo formatado: Ex. 3.548,25 Campo formatado: Ex. 18/01/2005 Detalhe

4 - Releia parte do campo EMPRESA, na posio 89, defina a varivel TIPO DE EMPRESA, com 9 caracteres; 5 - Gere um relatrio com os resultados da leitura do arquivo. Leia com ateno as mensagens na janela LOG. Salve o seu programa!. OBS: Salve o seus programas! Faa-o sempre, no diretrio c:\curso\sas

45 2 LABORATRIOManipular os procedimentos de impresso e ordenao. Utilizando o arquivo SAS gerado no laboratrio anterior, monte programas SAS que: 1 - Gere um relatrio: - com as variveis: NOME, EMPRESA, CARGO e SALARIO; - dever ter espacejamento DUPLO; - no poder aparecer a coluna com o nmero de registros ( OBS ); ( Utilize o procedimento PRINT ) 2 - Gere: - um arquivo SAS permanente ordenado por EMPRESA; - um relatrio com todos os dados, relacionados por EMPRESA; (Utilize os procedimentos SORT e PRINT) 3 - Utilizando o arquivo ordenado do item anterior: - gere um relatrio por EMPRESA; - com os dados: NOME, CARGO e SALARIO; - faa um somatrio da varivel SALARIO; - coloque o ttulo "Relatrio de Salrios por Empresa"; - coloque o rodap "FONTE: Fundao Getlio Vargas"; ( Utilize o procedimento PRINT) 4 - Utilizando o arquivo SAS CADASTRO, gerado no laboratrio anterior, crie um programa SAS que emita um relatrio com as variveis: NOME, CARGO e SALARIO, em ordem ascendente por EMPRESA e descendente por SALARIO. (Utilize o procedimento SORT e PRINT) 5 - Utilizando o arquivo SAS CADASTRO, gere um relatrio que: - esteja ordenado por EMPRESA; - com as variveis: NOME, EMPRESA e SALARIO; - tenha espacejamento DUPLO; - sem ttulo algum; - com o somatrio da varivel SALARIO;

46 5.2 - Comando de Atribuio (=)Caracter que no SAS utilzado para criar novas variveis e editar as j existentes em um Data Step. = ; varivel expresso Nome com no mximo 32 caracteres. Expresses do tipo:

- Operaes aritmticas simples: + - * / ** x2=x ; Move valor; soma=x+y ; Adio; dif=x-y ; Subtrao; dobro=x*2 ; Multiplicao; met=x/2 ; Diviso; cubo=x**3 ; Exponenciao; y=-x ; Muda sinal; - Constantes : N=0 ; Constante numrica; - Concatenao de caracteres : SEXO="F" ; Constante caracter;

||

A=PAULO || ANTUNES; ==> A=PAULOANTUNES A=PAULO || || ANTUNES; ==> A=PAULO ANTUNES - Expresses complexas com prioridade de avaliao: ( ) Funo ** * / + =================, A=X+Y+Z ; A=X+Y*Z ; A=X/(Y/Z) ; - Funes: S=SQRT(X) ; A=INT(X) ; Z=ABS(SQRT(X)-2) ;

47Ex.19:

LIBNAME ARQ "C:\SAS\TESTE" ; DATA ARQ.LUCROS ; INFILE C:\DADOS\NUMEROS.TXT; INPUT ANO 1-2 RECEITA 4-7 DESPESAS 9-12; VAL_DOL = 0.98 ; ANO = ANO + 1900 ; LUCRO = RECEITA - DESPESAS ; DOLLAR = ( RECEITA - DESPESAS ) / VAL_DOL ; RUN; Arquivo: NUMEROS.TXT01 9 9 9 02 4 5 6 03 04 5 6 8 05 6 2 4 06 5 8 5 07 0 0 0 08 09 1 1 2 10 0 1 4 11 5 4 5 12 0 0 0

PROC PRINT DATA=ARQ.LUCROS NOOBS DOUBLE ; TITLE "Analise Contabil" ; VAR ANO RECEITA DESPESAS LUCRO DOLLAR ; SUM RECEITA DESPESAS LUCRO DOLLAR ; RUN ;

Analise Contabil ANO 1994 1995 1996 RECEITA 5650 6280 8450 ===== 20380 DESPESAS 1050 1140 2450 ==== 4640 LUCRO 4600 5140 6000 ===== 15740 DOLLAR 4693.8775 5244.8979 6122.4489 ========= 16061.2240

48 5.3 - Comando RETAINComando de Definio; Normalmente o SAS inicializa todas as variveis criadas no DATA Step, com o valor missing, a cada iterao do DATA Step; O Comando RETAIN define ou indica uma varivel com um valor inicial, e determina que ela no seja reinicializada a cada iterao do DATA Step; Deve ser posicionado sempre antes do comando que ir utilizar a varivel definida;

RETAIN [valor inicial] . . . ; Ex.20:DATA LUCROS ; INFILE C:\DADOS\NUMEROS.TXT; RETAIN CONT 0 ANO 0; INPUT ANO 1-2 RECEITA 4-7 DESPESAS 9-12; ANO = ANO + 1900 ; LUCRO = RECEITA - DESPESAS ; DOLLAR = LUCRO / 0.98 ; CARDS; 94 5650 1050 95 6280 1140 96 8450 2450 RUN; PROC PRINT DATA=LUCROS NOOBS; TITLE "Analise Contabil" ; SUM RECEITA DESPESAS LUCRO DOLLAR ; RUN ; Analise Contabil CONT 1 2 3 ANO 1994 2089 2185 RECEITA 5650 6280 8450 ===== 20380 DESPESAS 1050 1140 2450 ==== 4640 LUCRO 4600 5140 6000 ===== 15740 DOLLAR 4693.8775 5244.8979 6122.4489 ========= 16061.2240

49 5.4 - Comando IF-THEN/ELSE Comando de Execuo; Comando que condiciona a execuo de um outro comando SAS, de acordo com alguma expresso que determina uma condio; Se a expresso, que determina a condio, for verdadeira, ser executado o comando que vier aps o THEN. Se a condiao for falsa, ser executado o comando que vier aps o ELSE. Somente um comando aps o THEN e do ELSE

IF

[THEN] ; [ELSE] ;

expresso Combinao de variveis com operadores de comparao e/ou operadores lgicos que determinam uma condio. comando Comando do SAS que ser executado de acordo com o resultado da condio. Operadores de Comparao LT GT EQ LE GE NE NL NG IN < > = ~= menor que maior que igual a menor ou igual a maior ou igual a no igual (diferente) no menor no maior esta no conjunto Operadores Lgicos OR | ou, um ou outro AND & e, ambos NOT ~ no, negao

50 Ex.21: S o comando IFLIBNAME DAD "C:\CURSO\SAS" ; DATA DAD.DADOS82 ; INFILE "A:\DADOS\CADASTRO.TXT" LRECL=132; INPUT NOME $ 30. END $ 30. ANO 4. ; IF ANO=1982 ;

RUN;

Ex.22: Operador de ComparaoDATA NOTA ; INFILE A:\NOTAS.TXT INPUT NOME $ 1-8 NOTA 9-11; IF NOTA LT 3 THEN CONCEITO="E" ; IF 3