sas - o essencial da linguagem

Upload: jaddedyou

Post on 11-Jul-2015

904 views

Category:

Documents


1 download

TRANSCRIPT

Programa de Ps-Graduao em Engenharia Florestal Programa de Ps-Graduao em Estatstica e Modelagem Quantitativa

SAS

O ESSENCIAL DA LINGUAGEM

EDUARDO PAGEL FLORIANO IVANOR MLLER PAULO RENATO SCHNEIDER LUIS FELIPE DIAS LOPES

Santa Maria 2007 Associao de Pesquisa, Educao e Proteo Ambiental

Floriano, Eduardo P. SAS O essencial da linguagem, 2ed. Eduardo Pagel Floriano, Ivanor Mller, Paulo Renato Schneider, Luis Felipe Dias Lopes. Santa Maria: UFSM(PPGEFPPGMQ) / Ambiente Inteiro, 2007. 211p.

UFSM(PPGEF-PPGMQ) / Ambiente Inteiro 1. SAS. 2. Estatstica. 3. Programao. 4. Engenharia Florestal. I. Ttulo

SAS O

E SS E N C I A L D A L I N G U A G E M

M.Sc. Eduardo Pagel Floriano1 Prof. Dr. Ivanor Mller2 Prof. Dr. Paulo Renato Schneider3 Prof. Dr. Luis Felipe Dias Lopes4 Santa Maria, 16 de maro de 2007. PPGEF - Programa de Ps-Graduao em Engenharia Florestal PPGEMQ - Programa de Ps-Graduao em Estatstica e Modelagem Quantitativa UFSM Associao de Pesquisa, Educao e Proteo Ambiental

1 Engenheiro Florestal. Doutorando do Programa de Ps-Graduao em Engenharia Florestal da Universidade Federal de Santa Maria, RS. Mailto: [email protected] 2 Engenheiro Florestal, Licenciado em Matemtica. Professor do Programa de Ps-graduao em Estatstica e Modelagem Quantitativa da Universidade Federal de Santa Maria, RS. Mailto: [email protected] 3 Engenheiro Florestal. Professor do Programa de Ps-Graduao em Engenharia Florestal da Universidade Federal de Santa Maria, RS. Mailto: [email protected] 4 Licenciado em Matemtica. Professor do Programa de Ps-graduao em Estatstica e Modelagem Quantitativa da Universidade Federal de Santa Maria, RS. Mailto: [email protected]

ApresentaoEste Manual foi concebido para auxiliar nos primeiros passos com a programao na linguagem do SAS System, para uso na Engenharia Florestal e cincias correlatas. Os manuais originais do SAS so escritos em lngua Inglesa e somam mais de dezenas de milhares de pginas, dificultando o seu uso. O objetivo deste documento o de servir de guia, em lngua portuguesa, para as principais aplicaes da linguagem SAS. No se pretende substituir os manuais originais, mas facilitar o acesso ao que se considera o mais importante da linguagem. Este manual foi dividido em trs volumes. No primeiro volume, SAS O essencial da linguagem, procurou-se descrever a linguagem de forma que possa servir de guia geral para quem est iniciando a desenvolver programas. No segundo volume, SAS O essencial da linguagem para Engenheiros Florestais, so

apresentados exemplos de aplicaes na pesquisa, administrao e controle de florestas econmicas. O terceiro volume, SAS Anlise da estrutura florestal e anlise multivariada aplicada fitossociologia, dedicado a aplicaes teis no estudo de florestas nativas. Os captulos do primeiro volume so organizados em seqncia apropriada para aprendizagem passo a passo, sem mestre. Os trs primeiros captulos explicam a estrutura da linguagem SAS. Para

aprender a programar, portanto, aconselhvel ler e realizar os exerccios desta parte inicial integralmente. O Captulo IV refere-se formatao de dados de entrada e de sada e o Captulo V diz respeito s funes pr-programadas da linguagem; destes dois, IV e V, recomenda-se a leitura da introduo e o estudo das seces sobre sintaxe, o restante pode ser utilizado somente para consulta, quando necessrio, durante a elaborao de um programa, no sendo de leitura obrigatria. Do Captulo VI em diante, so descritos resumidamente os principais procedimentos da linguagem, entitulados de PROC. O segundo e terceiro volumes esto em fase de elaborao e contm aplicaes prontas, em linguagem SAS, para a rea florestal. So programas que podem ser utilizados na atividade profissional do Engenheiro Florestal, ou profissional de rea correlata, na forma em que foram escritos, ou modificados pelo usurio para adapt-los a situaes semelhantes, quando necessrio.

Contedo

Introduo...........................................................................................................1CONVENSES UTILIZADAS .................................................................................................... 2Menus ................................................................................................................................................ 2 Exemplos ........................................................................................................................................... 3 Sintaxe............................................................................................................................................... 3 Valores perdidos................................................................................................................................ 4

PROGRAMAS SAS: EDIO, EXECUO E COMPONENTES ...................................................... 5Editor ............................................................................................................................................... 11 Log .................................................................................................................................................. 12 Output .............................................................................................................................................. 13

PROCEDIMENTOS SAS (PROC STEP).................................................................................. 14 USANDO OS EXEMPLOS DE PROGRAMAS .............................................................................. 18

Captulo 1 : Passos de programao SAS .....................................................191.1 DATA STEP.................................................................................................................. 19 1.2 PROC STEP ................................................................................................................. 21 1.3 JCL (JOB CONTROL LANGUAGE) .................................................................................. 22

Captulo 2 : Elementos da linguagem SAS ....................................................252.1 PALAVRAS ................................................................................................................... 262.1.1 Nomes .................................................................................................................................... 27 2.1.2 Literais .................................................................................................................................... 28 2.1.3 Nmeros ................................................................................................................................. 28 2.1.4 Caracteres especiais .............................................................................................................. 29

2.2 CONSTANTES .............................................................................................................. 292.2.1 Constantes numricas............................................................................................................ 29 2.2.2 Constantes de caracteres....................................................................................................... 30 2.2.3 Constantes de data, horrio e data-horrio............................................................................ 30

2.3 VARIVEIS ................................................................................................................... 30

2.4 OPERANDOS................................................................................................................ 31 2.5 OPERADORES .............................................................................................................. 31 2.6 EXPRESSES .............................................................................................................. 34 2.7 INSTRUES................................................................................................................ 35 2.8 DECLARAES ............................................................................................................ 36 2.9 FUNES .................................................................................................................... 37

Captulo 3 : Arquivos de dados (DATA STEP) ...............................................383.1 SINTAXE ...................................................................................................................... 393.1.1 Criao de arquivos de dados do tipo DATA SET ................................................................. 39 3.1.2 Outros modelos de sintaxe para o DATA STEP .................................................................... 40

3.2 FORMATOS DE ENTRADA E SADA (INPUT/PUT) ............................................................ 42 3.3 PROCEDIMENTOS ESSENCIAIS COM O DATA STEP ........................................................... 463.3.1 PROC APPEND...................................................................................................................... 46 3.3.2 PROC SORT .......................................................................................................................... 47

3.4 INSTRUES ESSENCIAIS DO DATA STEP........................................................................ 493.4.1 ARRAY (instruo) ................................................................................................................. 50 3.4.2 BY (instruo)......................................................................................................................... 52 3.4.3 CARDS (instruo) ................................................................................................................. 52 3.4.4 DATALINES (instruo).......................................................................................................... 52 3.4.5 DELETE (instruo)................................................................................................................ 53 3.4.6 DO/END (instruo)................................................................................................................ 53 3.4.7 DROP (instruo) ................................................................................................................... 54 3.4.8 FILE (instruo) ...................................................................................................................... 55 3.4.9 FILENAME (instruo)............................................................................................................ 56 3.4.10 IF THEN (instruo).............................................................................................................. 57 3.4.11 INFILE (instruo) ................................................................................................................ 57 3.4.12 INPUT (instruo)................................................................................................................. 58 3.4.13 KEEP (instruo) .................................................................................................................. 60 3.4.14 MERGE (instruo) .............................................................................................................. 61 3.4.15 OUTPUT (instruo)............................................................................................................. 64 3.4.16 PUT (instruo)..................................................................................................................... 67 3.4.17 RETAIN (instruo) .............................................................................................................. 68 3.4.18 SET (instruo)..................................................................................................................... 70 3.4.19 SUM (instruo).................................................................................................................... 71 3.4.20 UPDATE (instruo) ............................................................................................................. 71 3.4.21 WHERE (instruo) .............................................................................................................. 72

Captulo 4 : Formatos de sada (FORMAT) e entrada (INFORMAT )...................744.1 FORMAT (INSTRUO DE FORMATOS DE SADA).............................................................. 75

4.1.1 Formatos de sada definidos pelo usurio ............................................................................. 76 4.1.2 Formatos de sada para variveis de caracteres ................................................................... 77 4.1.3 Formatos de sada para variveis numricas ........................................................................ 78 4.1.4 Formatos de sada para variveis de data_e_horrio............................................................ 79

4.2 INFORMAT (INSTRUO DE FORMATOS DE ENTRADA) ...................................................... 804.2.1 Formatos de entrada para variveis de caracteres................................................................ 81 4.2.2 Formatos de entrada para variveis numricas ..................................................................... 81 4.2.3 Formatos de entrada para data, horrio e data-horrio ......................................................... 82

4.3 PROC FORMAT ............................................................................................................ 824.3.1 VALUE (instruo).................................................................................................................. 84 4.3.2 INVALUE (instruo) .............................................................................................................. 84 4.3.3 SELECT (instruo)................................................................................................................ 85 4.3.4 PICTURE (instruo).............................................................................................................. 85 4.3.5 EXCLUDE (instruo)............................................................................................................. 86

4.4 EXEMPLOS .................................................................................................................. 86

Captulo 5 : Funes ........................................................................................945.1 RESULTADOS DE FUNES ........................................................................................... 96 5.2 CATEGORIAS DE FUNES............................................................................................ 965.2.1 Funes aritmticas ............................................................................................................... 97 5.2.2 Funes de caracter............................................................................................................... 98 5.2.3 Funes de data_e_horrio.................................................................................................... 99 5.2.4 Funes financeiras ............................................................................................................. 100 5.2.5 Funes matemticas .......................................................................................................... 104 5.2.6 Funes de nmeros aleatrios ........................................................................................... 105 5.2.7 Funes de estatstica bsica .............................................................................................. 106 5.2.8 Funes trigonomtricas ...................................................................................................... 106 5.2.9 Funes de truncagem......................................................................................................... 107 5.2.10 Funes de hospedagem ................................................................................................... 107

Captulo 6 : PROC ANOVA / PROC GLM ......................................................1086.1 SINTAXE:................................................................................................................... 109 6.2 OPES DO PROCEDIMENTO: ..................................................................................... 109 6.3 INSTRUES DO PROCEDIMENTO: ............................................................................... 109

Captulo 7 : PROC CHART / PROC GCHART ...............................................115 Captulo 8 : PROC CORR ...............................................................................1208.1 SINTAXE:................................................................................................................... 120 8.2 OPES DO PROCEDIMENTO: ..................................................................................... 120 8.3 INSTRUES DO PROCEDIMENTO: ............................................................................... 122

8.3.1 BY (instruo)...................................................................................................................... 122 8.3.2 FREQ (instruo).................................................................................................................. 122 8.3.3 PARTIAL (instruo)............................................................................................................. 123 8.3.4 VAR (instruo) .................................................................................................................... 123 8.3.5 WEIGHT (instruo) ............................................................................................................. 123 8.3.6 WITH (instruo)................................................................................................................... 124 8.3.7 Valores perdidos (missing values)........................................................................................ 124 8.3.8 Arquivos de sada TYPE=CORR.......................................................................................... 124

Captulo 9 : PROC FREQ................................................................................1279.1 SINTAXE .................................................................................................................... 1279.1.1 BY (instruo)....................................................................................................................... 128 9.1.2 EXACT (instruo)................................................................................................................ 128 9.1.3 OUTPUT (instruo)............................................................................................................. 129 9.1.4 TABLES (instruo).............................................................................................................. 129 9.1.5 TEST (instruo)................................................................................................................... 130 9.1.6 WEIGHT (instruo) ............................................................................................................. 130

Captulo 10 : PROC MEANS / PROC SUMMARY..........................................13810.1 SINTAXE .................................................................................................................. 138 10.2 OPES DO PROCEDIMENTO .................................................................................... 138 10.3 ALGUMAS ESTATSTICAS ........................................................................................... 138

Captulo 11 : PROC MODEL...........................................................................14111.1 INTRODUO ........................................................................................................... 141 11.2 VALIDAO DE MODELOS .......................................................................................... 14411.2.1 Homocedasticidade da varincia........................................................................................ 144 11.2.2 Independncia dos resduos .............................................................................................. 145 11.2.3 Normalidade da distribuio dos resduos ......................................................................... 146

11.3 VALORES PERDIDOS NO PROC MODEL................................................................... 151

Captulo 12 : PROC PLOT / PROC GPLOT ...................................................15512.1 SINTAXE .................................................................................................................. 155 12.2 OPES DO PROCEDIMENTO PROC GPLOT ............................................................ 155 12.3 INSTRUES DO PROCEDIMENTO .............................................................................. 15612.3.1 Caractersticas dos grficos gerados por PLOT ................................................................ 157

Captulo 13 : PROC PRINT.............................................................................16613.1 SINTAXE .................................................................................................................. 16713.1.1 Opes do procedimento: .................................................................................................. 167 13.1.2 BY (instruo)..................................................................................................................... 168

13.1.3 PAGEBY (instruo)........................................................................................................... 168 13.1.4 SUMBY (instruo)............................................................................................................. 168 13.1.5 ID (instruo) ...................................................................................................................... 169 13.1.6 SUM (instruo).................................................................................................................. 169 13.1.7 VAR (instruo) .................................................................................................................. 169

Captulo 14 : PROC REG................................................................................17514.1 SINTAXE .................................................................................................................. 17514.1.1 Opes do Procedimento ................................................................................................... 176 14.1.2 Instrues do procedimento ............................................................................................... 176

Captulo 15 : PROC NLIN ...............................................................................18315.1 SINTAXE .................................................................................................................. 18415.1.1 Opes do procedimento ................................................................................................... 185 15.1.2 Instrues do procedimento ............................................................................................... 185

Captulo 16 : PROC UNIVARIATE..................................................................19316.1 SINTAXE .................................................................................................................. 19316.1.1 Opes do procedimento ................................................................................................... 193 16.1.2 Instrues do procedimento ............................................................................................... 194

Captulo 17 : (operaes com matrizes) PROC IML ...................................20417.1 SINTAXE .................................................................................................................. 20417.1.1 Declaraes, Mdulos e Subrotinas................................................................................... 205 17.1.2 Comandos e Operadores ................................................................................................... 205

Referncias .....................................................................................................211

IntroduoO SAS foi idealizado como um pacote estatstico, mas, com o passar do tempo, o Instituto SAS produziu um sistema muito complexo chamado de SAS System . O SAS System considerado o mais completo pacote estatstico produzido at hoje, entretanto, vai muito alm disso, podendo ser visto como: Gerenciador de bancos de dados; Conversor de dados entre sistemas operacionais; Sistema de informaes geogrficas (SIG); Linguagem de programao estruturada e orientada a objetos; Linguagem matemtica com clculo matricial; Gerador de grficos em alta resoluo; Sistema de programao linear. Assim, com esta profuso de funes, os manuais do SAS System acabaram por se tornar muito extensos e algo confusos, dificultando o seu uso. Entretanto, o poder da linguagem SAS, para aplicaes estatsticas em reas como a biolgica e a florestal pode ser alcanado com um mnimo de conhecimento sobre o sistema. isso o que se pretende com este manual: descrever o essencial do SAS System para aplicaes estatsticas, de forma a possibilitar o uso do poder do sistema ao usurio leigo em informtica, com nfase na rea da Engenharia Florestal.1

SAS - O essencial da linguagem ____________________________________________________________________________________

A programao SAS a que se refere este manual prpria para o SAS System verso 8.2, para microcomputadores em ambiente Windows, na forma programvel. No se tratar da anlise de dados no modo interativo, ou em computadores de grande porte, ou com outro sistema operacional, exceto nos casos em que se julgar adequado.

Convenses utilizadasAs principais convenes e metodologias de descrio da linguagem SAS utilizados, sejam prprias do SAS System, ou deste manual, so descritas a seguir. Os manuais do SAS System constituem uma enciclopdia de muitos milhares de pginas que descrevem todas as suas possibilidades. Neste manual so descritos somente o que se considerou essenciais para se usar na rea biolgica, com especial ateno s aplicaes na Engenharia Florestal. Muitas opes dos procedimentos foram omitidas para se evitar escrever um volume muito extenso. Para informaes sobre todas as possibilidades do SAS System, o leitor deve acessar seus manuais on line, disponveis para download em PDF, na URL

ou no site do SAS Institute .

MenusAs referncias no texto, feitas aos menus da barra de menus do SAS System (Figura 1), so realizadas seqencialmente, conforme sua hierarquia, entre barras verticais, como em |FILE|SAVE|, que identifica o

2

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

menu |File| e seu submenu |Save|, utilizado para acessar a janela de salvamento de arquivos.

ExemplosNeste manual, os exemplos e linhas de programa so escritos em negrito tamanho 8, limitados esquerda por uma barra vertical cinza de 6 pontos de largura com recuo de 4 pontos esquerda, seguidos de uma outra barra e de uma coluna com nmeros ilustrativos direita, os quais no fazem parte do programa. Esses servem exclusivamente para fazer referncias explicativas s linhas do programa no texto, como nas duas linhas de comentrio (Linhas 1 e 2) a seguir:* EXEMPLO DE LINHA DE COMENTRIO NO SAS SYSTEM; /* UMA LINHA DE COMENTRIO TAMBM PODE SER ASSIM. */ 1 2

SintaxeSintaxe o formato geral de um comando, instruo ou declarao na programao SAS, que deve ser seguido para que funcione. As linhas de sintaxe so escritas em negrito tamanho 8, limitados esquerda por uma barra vertical cinza de 6 pontos de largura, com recuo esquerda de 1,5 cm, como a seguir:PROC SORT ; BY Variavel-1 ...;

As descries de sintaxe so compostas por partes obrigatrias e partes opcionais. As partes opcionais na descrio da sintaxe sempre esto entre os sinais < > (que no devem ser escritos no programa). Os nomes e outras palavras que devem ser definidos pelo usurio ou

3

SAS - O essencial da linguagem ____________________________________________________________________________________

programador so especificados sem espaos, com as palavras justapostas, sendo a primeira letra de cada palavra escrita em maisculo e as demais em minsculo, como no exemplo a seguir, onde a expresso 'nome do array' est escrita como NomeDoArray e a palavra 'subscrito' est escrita como Subscrito:NomeDoArray{Subscrito};

As palavras utilizadas com todas as letras maisculas so palavras do sistema e as que usam a primeira letra de cada palavra (nica ou justaposta) so nomes que o usurio deve escolher, sejam de opes do sistema ou nomes definidos pelo usurio.

Valores perdidosValor perdido (ou faltante), entendido como a inexistncia de contedo em um ou mais registros de uma ou mais variveis de um arquivo SAS. Quando no existe valor em uma varivel, o caracter utilizado o ponto (.). Portanto, sempre que houver falta de um valor nos arquivos de dados, nos vetores, ou em matrizes, este deve ser informado como um ponto (.). Quando o contedo de um arquivo impresso e faltam valores em registros e colunas, impresso um ponto (.) no local de cada valor que falta. Valores perdidos so sempre os primeiros de um ordenamento ascendente e os ltimos no descendente. Em experimentos com parcelas perdidas, o seu valor deve ser informado como um ponto (.). Ento, o sistema entende que aquela4

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

parcela foi perdida e no a considera. Entretanto, se o resultado nulo deve ser considerado como conseqncia do efeito dos tratamentos, o valor que deve ser informado para que o sistema o considere zero (0). Observao: alguns procedimentos do SAS System permitem que o usurio informe que os valores perdidos devem ser considerados na anlise.

Programas SAS: edio, execuo e componentesH duas formas para processamento de dados no SAS System em ambiente WINDOWS, a interativa e a programvel. Na forma interativa, no se escrevem programas, apenas se deve gerar os arquivos de dados e solicitar, atravs de menus e janelas, o que se deseja que o sistema faa com os dados. No modo programvel, deve-se escrever os programas e depois execut-los. Este manual se restringe forma programvel. H, tambm, dois modos para execuo de programas SAS no ambiente WINDOWS, o modo interativo atravs de janelas e o modo de lotes. Neste manual ser tratado somente do modo programvel interativo, ou seja, criar arquivos de dados, escrever programas e execut-los atravs da interface grfica do SAS System para WINDOWS. Programas SAS em microcomputadores, aos quais se restringe este manual, so escritos na rea de edio do SAS System (Editor) e so constitudos por passos de programao (DATA STEP e PROC STEP). Cada passo de programa constitudo por declaraes (frases) e cada declarao constituda por palavras (Ver Captulo II).

5

SAS - O essencial da linguagem ____________________________________________________________________________________

aconselhvel que sejam includas linhas de identificao no incio do programa, atravs de frases de comentrio, iniciando-as por um asterisco seguido de um espao branco, o que torna a frase sem efeito na programao, podendo-se escrever, na seqncia, qualquer palavra, letra ou nmero, finalizando a linha com ponto-e-vrgula. A identificao do programa pode incluir o nome do mesmo, o que ele realiza, a data e o nome do programador. Pode-se incluir tantas frases de comentrio quantas forem necessrias, iniciando cada uma por um asterisco, seguido de espao branco e finalizando com ponto-e-vrgula. Um programa SAS em ambiente WINDOWS deve ter, como ltimas, as linhas:Em que: RUN; a linha que diz ao sistema operacional que execute o programa; QUIT|EXIT; a linha que instrui o sistema operacional para encerrar a execuo do programa ( de uso opcional, mas faz com que o programa no fique aguardando novos passos e encerre mais rapidamente).RUN; QUIT|EXIT; 1 2

Um programa SAS tpico para WINDOWS, portanto, composto por:* LINHAS DE COMENTRIO (IDENTIFICAO DO PROGRAMA); DATA STEP; INSTRUOES; PROC STEP; INSTRUOES; RUN; QUIT|EXIT; 1 2 3 4 5 6 7

O SAS System para WINDOWS possui trs reas principais (ou janelas) relacionadas programao bsica e estatstica: Editor, Log e Output. No Editor so editados os arquivos de programas e de dados, que devem ser salvos da mesma forma que os textos do MS-WORD, mas devem ter a terminaes .SAS e .DAT, respectivamente. Um arquivo

6

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

SAS de programa, ou de dados, pode ter um nome composto da mesma forma que qualquer outro arquivo WINDOWS. O Log um relatrio com a descrio do que aconteceu durante a execuo do programa. O Output o relatrio de sada com os resultados do processamento. Exemplos de nomes de programas SAS: Programa.sas; Regresso.sas; Programa-reg01.sas. Exemplo de nomes de arquivos de dados: Dados.dat; Arquivo.dat; Arquivo_de_dados01.dat. Ao se abrir o SAS System no WINDOWS, automaticamente so geradas as trs janelas: Editor, Log e Output (Figura 1). Para salvar um arquivo de programa, clique no menu |File|Save| (Figura 2A) e escolha a opo salvar como tipo |SAS Files (*.sas)| (Figura 2B). Para salvar um arquivo de dados, clique no menu |File|Save| (Figura 2A) e escolha a opo salvar como tipo |DATA Files (*.dat)| (Figura 2C).

7

SAS - O essencial da linguagem ____________________________________________________________________________________

1. Barra de menus 2. Endereo 3. Barra de Tarefas 4. Bibliotecas 5. Atalhos

6. Aba de resultados 7. Aba do explorador 8. Janela do editor 9. Janela do arquivo de log 10. Janela do relatrio (sada)

FIGURA 1 Tela de abertura do SAS System para WINDOWS verso 8.2

8

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

(2A)

(2B)9

SAS - O essencial da linguagem ____________________________________________________________________________________

(2C) FIGURA 2 Salvando (2A) programas (2B) e dados (2C) em disco. Depois de salvo, o programa pode ser executado utilizando o atalho na barra de atalhos ou o menu |Run|Submit|, como na Figura 3.

FIGURA 3 Execuo de um programa atravs da barra de menus. O Editor (Program Editor) e os relatrios podem ser acessados atravs do menu |View| (Figura 4).

10

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

FIGURA 4 Menu View: permite acessar o Editor do SAS e os relatrios.

EditorNa janela do Editor pode-se escrever os programas ou dados e salvar em disco de forma semelhante a outros editores de texto. Os arquivos de programas devem ser salvos com nomes do tipo nomedoprograma.sas e arquivos de dados devem ser salvos com nomes do tipo arquivodedados.dat. O arquivo de programa

exemplo.sas a seguir, contm 22 linhas de programao, sendo 3 de comentrios que identificam o programa, 15 linhas de DATA STEP onde 11 so de dados, duas de PROC STEP, uma de execuo e uma de finalizao.* PROGRAMA DE EXEMPLO (EXEMPLO.SAS); * 17/01/2005; * EDUARDO PAGEL FLORIANO; DATA ARQ; INPUT X Y Z; CARDS; 5 8 3.26 1 2 3 4 5 6 7

11

SAS - O essencial da linguagem ____________________________________________________________________________________6 9 3.93 7 12 2.94 8 18 4.06 9 25 4.35 10 33 4.11 11 42 4.64 12 57 4.29 13 70 4.50 14 85 4.55 15 101 4.97 ; PROC REG DATA=ARQ; MODEL Z=X Y; RUN; QUIT|EXIT; 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Log .Log uma crnica ou crtica que o sistema faz, enquanto um programa est sendo executado, sobre o que foi realizado, relatando a execuo e os possveis erros. Aps a execuo do programa, o SAS System informa o que aconteceu durante a execuo do programa na janela de Log. Os erros porventura existentes so relatados, localizados e identificados para que o programador possa corrig-los. No caso do programa exemplo.sas, no houve erros e o relatrio de Log o seguinte:1 * PROGRAMA DE EXEMPLO; 2 * 17/01/2005; 3 * EDUARDO PAGEL FLORIANO; 4 DATA ARQ; 5 INPUT X Y Z; 6 CARDS; NOTE: THE DATA SET WORK.ARQ HAS 11 OBSERVATIONS AND 3 VARIAVELS. NOTE: DATA (INSTRUO) USED: REAL TIME 0.20 SECONDS CPU TIME 0.20 SECONDS 18 ; 19 PROC REG DATA=ARQ; 20 MODEL Z=X Y; 21 RUN; NOTE: 11 OBSERVATIONS READ. NOTE: 11 OBSERVATIONS USED IN COMPUTATIONS.

12

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________22 QUIT|EXIT; NOTE: PROCEDURE REG USED: REAL TIME 0.60 SECONDS CPU TIME 0.60 SECONDS

OutputO relatrio de sada do programa exemplo.sas o seguinte:THE SAS SYSTEM THE REG PROCEDURE MODEL: MODEL1 DEPENDENT VARIAVEL: Z ANALYSIS OF VARIANCE SUM OF MEAN SOURCE DF SQUARES SQUARE F VALUE PR > F MODEL 2 2.50102 1.25051 9.37 0.0080 ERROR 8 1.06765 0.13346 CORRECTED TOTAL 10 3.56867 ROOT MSE 0.36532 R-SQUARE 0.7008 DEPENDENT MEAN 4.14545 ADJ R-SQ 0.6260 COEFF VAR 8.81246 PARAMETER ESTIMATES PARAMETER STANDARD VARIAVEL DF ESTIMATE ERROR T VALUE PR > |T| INTERCEPT 1 2.24246 0.84499 2.65 0.0291 X 1 0.22266 0.14120 1.58 0.1535 Y 1 -0.00774 0.01450 -0.53 0.6081

O SAS System permite salvar este relatrio no formato rich text format (rtf), que pode ser lido diretamente em qualquer editor de textos como o MS-Word, onde pode ser editado e modificado. Para tanto, basta clicar na aba da janela de Output para torn-la ativa, acessar o menu |File|Save as| e selecionar o formato rtf. Existe um outro formato de sada mais elaborado que pode ser ativado atravs do menu |Tools|Opes|Preferences...|, na aba |Results|, marcando-se a caixa de seleo |Create HTML| (Figura 5). O relatrio HTML gerado pelo SAS System apresenta os resultados no formato de tabela. As tabelas do relatrio de sada podem ser copiadas e coladas em outros locais. O relatrio HTML pode ser aberto

13

SAS - O essencial da linguagem ____________________________________________________________________________________

no MS-Word e alterado, podendo depois ser salvo com a terminao .doc no formato do prprio MS-Word.

FIGURA 5 Selecionando relatrios no formato HTML.

Procedimentos SAS (Proc Step)Os procedimentos do SAS System so utilizados para processar os dados gerados no DATA STEP e abrangem muitas reas do conhecimento.

14

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Podem ser entendidos como rotinas de programao do sistema que realizam clculos complexos, conforme a metodologia descrita nos manuais originais do SAS System, que se baseiam em obras cientficas consagradas. Alm dos procedimentos bsicos, que so essenciais para se trabalhar com a linguagem, na rea florestal os mais importantes so os relacionados com estatstica (inclundo clculos e produo de grficos), programao linear e processamento de informaes geogrficas. Neste manual dada nfase aos procedimentos de estatstica e de programao linear. Os captulos dedicados aos passos de programao de

procedimentos abrangem: PROC ANOVA; PROC CHART; PROC CORR; PROC FREC; PROC GLM; PROC MEANS; PROC MODEL; PROC PLOT; PROC PRINT; PROC REG; PROC UNIVARIATE. Os procedimentos (PROC) bsicos do SAS System so utilizados para manipular arquivos, obter estatsticas simples uni e bivariadas, para formatar variveis e emitir relatrios, entre outros. Maiores detalhes sobre os procedimento bsicos citados so encontrados no manual 'SAS Institute. SAS Procedures Guide, v. 8.

15

SAS - O essencial da linguagem ____________________________________________________________________________________

Cary, NC: SAS Institute, 1999. 1729 p.', no qual os captulos deste manual so baseados. Para aplicao nas cincias rurais e biolgicas, considera-se essencial conhecer os procedimentos bsicos relacionados a seguir: Procedimentos bsicos estatsticos Geralmente no vivel medir todos os indivduos de uma populao. Ento, procura-se medir alguns inivduos que a representem. Uma coleo de valores medidos sobre uma parte dos indivduos de uma populao chamada de amostra. O resultado de uma funo matemtica executada sobre valores de uma amostra chamada de estimador (SAS Institute, 1999), enquanto que o resultado obtido atravs de todos os indivduos da populao chamado de parmetro. habitual representar estimadores por caracteres arbicos e parmetros por letras gregas. Dentre todos os procedimentos estatsticos bsicos do SAS System h trs que oferecem juntos todas as possibilidades de clculos e relatrios dos demais, so o PROC UNIVARIATE, o PROC FREQ e o PROC CORR; alm dos relatrios emitidos por eles, ainda apresentam a opo de emitir arquivos de sada com os quais se pode produzir todos os tipos de relatrios emitidos pelos demais procedimentos bsicos estatsticos com auxlio do PROC PRINT. Dois procedimento que apresentam grande utilidade pela sua simplicidade so o PROC MEANS e o seu correlato PROC SUMMARY; ambos fazem os mesmos clculos de forma semelhante, mas o primeiro apresenta relatrios mais elaborados e o segundo apresenta a posibilidade de gravar os resultados em um arquivo de sada sem emitir relatrios. Assim, este manual ser restrito a esses seis procedimentos. Os demais procedimentos bsicos estatsticos so: PROC TABULATE, PROC REPORT e PROC SQL.

16

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Procedimentos bsicos de manipulao de arquivos Os principais so o PROC APPEND e o PROC SORT, descritos no Captulo III. Procedimento bsico de formatao o procedimento PROC FORMAT. Procedimentos de emisso de relatrios Os principais so o PROC PRINT, que imprime o contedo de arquivos em forma de lista, e o PROC TABULATE, que imprime o contedo de arquivos em forma de tabelas, alm de calcular algumas estatsticas simples; o PROC FREQ pode ser utilizado para produzir tabelas semelhantes ao PROC TABULATE, assim, somente o primeiro foi descrito neste manual. Neste volume so descritos os seguintes procedimentos bsicos: PROC APPEND; PROC CORR; PROC FORMAT; PROC FREQ; PROC MEANS; PROC PRINT; PROC SORT; PROC UNIVARIATE. Entre os procedimentos estatsticos e de produo de grficos, so abordados neste volume os seguintes: PROC ANOVA / GLM; PROC CHART / GCHART; PROC MODEL; PROC PLOT / GPLOT; PROC REG. Maiores detalhes sobre os procedimento bsicos citados so encontrados nos manuais 'SAS Institute. SAS/STAT user's guide, v. 8. Cary, NC: SAS Institute, 1999. 3365 p.' e ' SAS Institute. SAS/graph user's guide, v. 8. Cary, NC: SAS Institute, 1999. 1220p.'.17

SAS - O essencial da linguagem ____________________________________________________________________________________

Usando os exemplos de programasPara usar os exemplos descritos neste manual sem alter-los, necessrio criar uma pasta no diretrio raiz (C:) do computador chamada de SASEXEMPLOS. Para criar a pasta, abra o WINDOWS EXPLORER e clique em |Disco local (C:)| (Figura 6-A), depois clique em |Arquivo|Novo |Pasta|

(Figura 6-B). Aparecer uma nova pasta no diretrio raiz; altere o nome padro de Nova pasta para SASEXEMPLOS.

(A) Clique em |Disco local C:| (B) Clique em |Arquivo|Novo FIGURA 6 Criando uma nova pasta no diretrio raiz C:\. |Pasta|

18

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Captulo 1 : Passos de programao SAS

Os programas SAS so constitudos por dois tipos de passos de programao (STEPS): os passos de criao de arquivos de dados (DATA STEP) e os passos de execuo de procedimentos (PROC STEP). Este Captulo uma introduo ao DATA STEP e ao PROC STEP. O DATA STEP descrito com detalhes no Captulo III e os principais PROC STEPs so descritos nos captulos subseqentes.

1.1 DATA STEPO DATA STEP o passo da programao SAS em que so criados ou modificados os arquivos SAS usados no programa. Pode haver tantos DATA STEP quantos necessrios em um programa, que so constituidos por expresses e instrues formando frases (declaraes) que iniciam pelo nome de um comando ou de uma varivel e terminam por ponto-e-vrgula (;). Um DATA STEP sempre inicia por DATA seguido do nome do arquivo SAS que ser criado. Um Arquivo SAS um arquivo criado em um programa, com um nome iniciado por uma letra e com at 8 caracteres de comprimento, sendo padronizadamente armazenado na memria do computador at

19

SAS - O essencial da linguagem ____________________________________________________________________________________

que o programa seja encerrado, opcionalmente podendo ser excluido ou modificado antes do encerramento do programa por declaraes especficas escritas pelo programador, em qualquer parte do programa, aps a criao do arquivo. Exemplo de DATA STEP:* EXEMPLO DE DATA STEP; DATA ARQ; INPUT X Y @@; Z=1.5+0.4*X-0.03*Y; DATALINES; 5 8 6 9 7 12 8 18 9 25 10 33 11 42 12 57 13 70 14 85 15 101 ; RUN; 1 2 3 4 5 6 7 8 9

Neste exemplo criado um arquivo SAS denominado de ARQ, so lidos 6 grupos de duas colunas de dados (X e Y) na primeira linha, 5 grupos na segunda linha e calculada uma terceira varivel (Z), a partir dos valores de X e Y, para compor o contedo do arquivo ARQ, que resulta na seguinte tabela final:Obs 1 2 3 4 5 6 7 8 9 10 11 X 5 6 7 8 9 10 11 12 13 14 15 Y 8 9 12 18 25 33 42 57 70 85 101 Z 3.26 3.63 3.94 4.16 4.35 4.51 4.64 4.59 4.60 4.55 4.47

20

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

1.2 PROC STEPO PROC STEP o passo da programao SAS em que so processados os dados de arquivos utilizando os procedimentos (PROCEDURES) do sistema. Os procedimentos so programas internos, cada um com sua sintaxe especfica, que executam tarefas complexas como o desenho de grficos e anlise estatstica. Pode haver quantos PROC STEPs quantos necessrios em um programa. Compem-se de comandos e operadores formando frases (declaraes) que iniciam pelo nome de um comando ou de uma varivel e terminam por ponto-e-vrgula (;). Um PROC STEP sempre inicia por PROC seguido do nome do procedimento que ser executado. Exemplo de PROC STEP:* EXEMPLO DE PROC STEP; PROC REG DATA=ARQ; MODEL Z=X Y; RUN; 1 2 3 4

O exemplo de PRO STEP acima calcula uma regresso com os dados do arquivo ARQ, onde a varivel dependente Z e as variveis independentes so X e Y. O relatrio de sada gerado pelo SAS System em formato HTML, resultado do processamento do PROC STEP, com os dados do arquivo SAS gerado pelo exemplo de DATA STEP anterior, apresentado a seguir no formato HTML de relatrios SAS:

21

SAS - O essencial da linguagem ____________________________________________________________________________________

The SAS SystemThe REG Procedure Model: MODEL1 Dependent Variavel: Z Analysis of Variance Sum of Squares 2.07467 0 2.07467 Mean Square 1.03734 0

Source Model Error Corrected Total

DF 2 8 10

F Value Infty

Pr > F |t| < ||

2.6 EXPRESSESUma expresso SAS, geralmente, uma sucesso de operandos e operadores formando um conjunto de operaes que so executadas para produzir um valor resultante. Expresses em SAS so usadas para escrever declaraes, para criar variveis, nomear valores, calcular valores novos, transformar variveis e executar processos condicionais. Expresses SAS podem resultar em valores numricos, valores de caracteres, ou valores Boleanos. Expresso simples uma expresso sem mais de um operador. Uma expresso simples pode consistir de uma nica: Constante; Varivel; Funo. Expresso combinada uma expresso que inclui vrios operadores. Quando o SAS encontra uma expresso combinada, segue

34

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

regras para determinar em que ordem deve executar cada parte da expresso. Exemplos de expresses SAS: Simples: 3; x; max; Combinadas: idade20; trim(last) || ', ' ||first; x=4+y.

2.7 INSTRUESUma instruo SAS uma srie de itens que inicia por uma palavra de comando que d nome instruo. Uma instruo SAS requer que o sistema execute uma ao ou fornece uma informao ao sistema. H trs tipos de instrues SAS: As especficas do DATA STEP (passos de construo de arquivos); As especficas de cada PROC STEP (passos de execuo de procedimentos); As globais que podem ser usadas em qualquer lugar de um programa de SAS. Algumas declaraes SAS especficas a cada procedimento SAS, so comuns a grupos de procedimentos afins e so executadas com sintaxe semelhante. Instrues SAS globais podem ser colocadas fora dos passos de programa. Neste caso no sero executadas, ficaro disponveis a partir

35

SAS - O essencial da linguagem ____________________________________________________________________________________

do ponto de sua declarao no programa. Sero executadas quando um passo de programa necessitar delas, como as instrues de impresso. Por exemplo: se ao iniciar um programa for escrita uma instruo TITLE com um ttulo qualquer, sempre que um passo de programa imprimir algo, aparecer o ttulo declarado. As instrues SAS globais so classificadas nas seis categorias a seguir: ACESSO A DADOS - Associam nomes de referncia com bibliotecas de dados SAS, catlogos SAS, arquivos externos, dispositivos de produo e arquivos remotos; AMBIENTE OPERACIONAL - Acessam o ambiente operacional diretamente; CONTROLE DE LOG - Alteram a aparncia do LOG do SAS; CONTROLE DE PRODUO - Acrescentam ttulos e notas de rodap produo do usurio; preparam a produo em uma variedade de formatos; CONTROLE DE PROGRAMA - Controlam o modo como o SAS processa os programas do usurio; EXIBIO DE JANELA - Exibe e personaliza janelas. As diferentes instrues globais so descritas no manual disponvel on line, no site : "SAS. SAS Language Reference: Concepts, v.8. Cary, NC: SAS Institute, 1999. 554p."

2.8 DECLARAESUma declarao SAS uma frase de programao completa, composta por uma srie de itens que pode incluir palavras chave, nomes SAS, caracteres especiais, operandos e operadores, formando expresses que so reguladas por uma sintaxe rgida e especfica de

36

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

cada tipo de instruo ou comando envolvido na declarao. Uma declarao SAS requer que o sistema execute ao(es), fornece informao(es) ao sistema, ou somente uma linha de comentrio. Geralmente uma declarao SAS inicia pelo nome de um passo (PROC ou DATA), pelo nome de uma instruo, ou pelo nome de uma varivel. Todas as declaraes SAS terminam com um ponto-e-vrgula (;). Os erros mais comuns em programas SAS ocorrem quando o programador esquece de encerrar uma declarao com ponto-e-vrgula. Ento, o sistema entende que a continuao do programa parte da declarao anterior e gera erros, obviamente.

2.9 FUNESFunes so operaes executadas pelo SAS System que possuem um nome prprio. Uma funo SAS, a partir do fornecimento de um argumento, retorna um valor. O SAS System possui um elenco de funes em diferentes reas, desde as mais comuns, como as funes aritmticas, at funes complexas como as econmicas e as de procura de parte de uma srie de caracteres. Por sua importncia, as funes foram descritas em mais detalhes no Captulo V deste manual.

37

SAS - O essencial da linguagem ____________________________________________________________________________________

Captulo 3 : Arquivos de dados (DATA STEP)

Os Arquivos de dados no SAS so constitudos por colunas (campos) e linhas (registros). As colunas tambm podem ser entendidas como as variveis e as linhas como as observaes contidas no arquivo. Os arquivos, na programao SAS, podem ser criados a partir de: Arquivos externos pr-existentes; Arquivos criados anteriormente no mesmo programa; Dados fornecidos no prprio programa; Sada de um procedimento (PROC STEP). Os passos da estrutura de um programa SAS, onde so criados arquivos, so chamados de DATA STEP. Num DATA STEP pode ser criado um ou mais arquivos e pode haver mais de um DATA STEP em um programa. Deve-se evitar as palavras reservadas CON, NUL, PRN, LPT1 LPT9 e COM1 para nomes de arquivos. O SAS System utiliza dois tipos de dados: os arquivos de dados SAS tpicos (DATA SET) ou dados virtuais resultantes de arquivos de lgica (DATA VIEW). Um arquivo de dados SAS (DATA SET) descreve e armazena os valores dos dados enquanto os arquivos de lgica SAS (DATA VIEW) no armazenam valores, ao invs disso, armazenam38

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

questes que criam dados virtuais que podem ser usados como se fossem simples arquivos de dados SAS; isso permite que sejam acessados dados armazenados em um ou mais arquivos de dados ao mesmo tempo e at arquivos de dados de no formato de outros softwares que no o SAS. Os DATA VIEW permitem que sejam criados arquivos de lgica SAS sem usar espao para armazenamento de dados, somente as questes lgicas so armazenadas e o que o usurio utiliza quando os acessa so os dados de resposta das questes programadas. No se tratar dos DATA VIEW neste manual. Um DATA STEP de um programa SAS para criao de arquivos de dados SAS sempre inicia por DATA e tem a seguinte forma geral:Data NomeDoArquivo ; DeclaraesDeInicializaoDeVariveisEVetores; DeclaraesParaClculoEAtribuioDeValores; DeclaraesDeEntradaDeDados; 1 2 3 4

3.1 SINTAXEH vrios modelos de sintaxe para o DATA STEP, dependendo que tipo de arquivo que est sendo criado: DATA SET, DATA VIEW ou DATA PGM. 3.1.1 CRIAODE ARQUIVOS DE DADOS DO TIPO

DATA SET

DATA ;

Ou

DATA _NULL_;

Nomedoarquivo o nome do arquivo de dados SAS a ser criado. Opes aparecem entre parnteses aps um nome de arquivo. Especifica uma ou mais aes SAS a realizar enquanto escreve no arquivo externo. A sintaxe de opes do DATA SET tem a seguinte estrutura: DEBUG - Permite depurar o programa, auxiliando na identificao de possveis erros de dados ou de lgica. _NULL_ - Permite criar um arquivo de dados temporrio que permanece na memria somente enquanto o DATA STEP est sendo executado.

39

SAS - O essencial da linguagem ____________________________________________________________________________________

3.1.2 OUTROS

MODELOS DE SINTAXE PARA O

DATA STEP

3.1.2.1 CRIAO DE ARQUIVOS DE LGICA DATA VIEWDATA view-nome / VIEW=view-nome )>;

ou

DATA VIEW=view-nome (); DESCRIBE; (opo-1=value-1)

3.1.2.2 CRIAO DE ARQUIVOS DE PROGRAMA DATA PGMDATA nomedoarquivo / PGM=nomedoprograma ;

ou

DATA PGM=nomedoprograma (); ;

Exemplo 3.1 - Criando um arquivo fornecendo dados no prprio programa:* EXEMPLO 3.1; DATA ARQ1; INPUT ARVORE DIAMETRO ALTURA; AREABASL=3.1416*(DIAMETRO/100)**2/4; DATALINES; 01 10.5 11.3 02 15.0 14.1 03 12.4 11.9 ; * VALORES DAS LINHAS DE DADOS NAO PODEM SER RECUADOS NESTE CASO; RUN; 1 2 3 4 5 6 7 8 9 10 11 12

Na linha 1 identificado o nome do programa com uma linha de comentrio. O incio do passo de dados na linha 2, segunda frase ou declarao do programa do Exemplo 3.1, cria o arquivo chamado ARQ1:DATA ARQ1;

40

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Instrui a entrada de dados em trs colunas chamadas de ARVORE, DIAMETRO e ALTURA atravs da declarao de INPUT na linha 3:INPUT ARVORE DIAMETRO ALTURA;

Atribui o valor da rea basal AREABASL na linha 4, atravs da frmula:AREABASL=3.1416*(DIAMETRO/100)**2/4;

Declara o incio da entrada de dados com a declarao DATALINES linha 5:DATALINES;

D entrada de trs linhas de dados (linhas 6, 7 e 8):01 10.5 11.3 02 15.0 14.1 03 12.4 11.9

Encerra a leitura de dados com um ltimo ponto-e-vrgula na linha 9:;

A linha 10 apresenta um comentrio e a linha 11 instrui a execuo do programa (RUN). A partir da criao do arquivo ARQ1, este pode ser usado para a criao de outros arquivos no mesmo programa, ou pode ser chamado em um passo de procedimento. Exemplo 3.2 - criando um arquivo a partir de dados de um arquivo externo:* EXEMPLO 3.2; DATA ARQ1; INFILE C:\SASEXEMPLOS\DADOSDH.DAT; INPUT ARVORE DIAMETRO ALTURA; AREABASL=3.1416*(DIAMETRO/100)**2/4; RUN; 1 2 3 4 5 6

41

SAS - O essencial da linguagem ____________________________________________________________________________________

O passo de programao do Exemplo 3.2 cria o arquivo chamado ARQ1 na linha 2:DATA ARQ1;

Na linha 3, chama o arquivo externo DADOSDH.DAT localizado no endereo C:\SASEXEMPLOS\ ENDERECO\, atravs da declarao de INFILE:INFILE C:\SASEXEMPLOS\ARQEXTERNO.DAT;

Instrui a entrada de dados em trs colunas chamadas de ARVORE, DIAMETRO e ALTURA atravs da declarao de INPUT na linha 4:INPUT ARVORE DIAMETRO ALTURA;

Atribui o valor da rea basal AREABASL na linha 5, atravs da frmula:AREABASL=3.1416*(DIAMETRO/100)**2/4;

Observe que a instruo de atribuio de valores a partir de dados lidos no arquivo, em ambos os exemplos, deve ser realizada aps a declarao de INPUT. Antes do INPUT podem ser includas declaraes de vetores (ARRAY), de RETAIN, FORMAT, laos (DO;END;), atribuio de valores que no so lidos pelo INPUT, entre outras, mas no a atribuio de valores e clculos baseados nos valores lidos pelo INPUT.

3.2 FORMATOS DE ENTRADA E SADA (INPUT/PUT)As instrues INPUT e PUT aceitam qualquer tipo de estrutura de dados em colunas e linhas. Pode-se instruir a leitura ou gravao de cada linha separadamente, de cada coluna e de diferentes maneiras. As principais so apresentadas em exemplos a seguir.

42

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Exemplo 3.3 Entrada de dados em colunas seqenciais sem limites definidos, em linhas de dados seqenciais:* EXEMPLO 3.3; DATA A; INPUT COLUNA1 COLUNA2 COLUNA3; DATALINES; 10.7 45.003 7. 11.0 34 71.03 10 25 93.8 14 50.3 57.8 ; PROC PRINT; RUN; 1 2 3 4 5 6 7 8 9 10 11

Os dados devem ser colocados em duas colunas separadas por um espao em branco. As linhas de dados so colocadas uma aps a outra e o programa l uma de cada vez. O comando DATALINES sinnimo de CARDS na linguagem SAS, podendo-se usar um ou outro. No Exemplo 3.3, o programa l uma tabela de dados com trs colunas chamadas de COLUNA1, COLUNA2 e COLUNA3 gerando um arquivo de dados SAS com o seguinte contedo:10.7 11.0 10.0 14.0 45.003 34.000 25.000 50.300 7.00 71.03 93.80 57.80

Aps, o programa imprime o relatrio a seguir:_OBS_ 1 2 3 4 COLUNA1 COLUNA2 COLUNA3 10.7 11.0 10.0 14.0 45.003 34.000 25.000 50.300 7.00 71.03 93.80 57.80

A coluna _OBS_ inserida automaticamente no relatrio SAS, contendo o nmero de ordem seqencial de cada observao do

43

SAS - O essencial da linguagem ____________________________________________________________________________________

arquivo. Para que no seja impressa necessrio utilizar a opo NOOBS, como no exemplo:PROC PRINT NOOBS;

Exemplo 3.4 Entrada de dados em colunas delimitadas, por grupos de linhas de dados:* EXEMPLO 3.4; DATA B; INPUT #1 @3 A 4-8 B 9-12 #2 @6 C D; CARDS; ABC002009177 2.034983 9 KNX009130918 40000 7 4 ZJH137105937 0.330010.71000 14.8 ; RUN; 1 2 3 4 5 6 7 8 9 10 11 12

A instruo CARDS equivalente instruo DATALINES. O caracter # seguido de um nmero inteiro, numa declarao de INPUT, indica o nmero de ordem de um grupo de linhas que deve ser lido. A parte de programa do Exemplo 3.4 l grupos de duas linhas, sendo a primeira linha a de nmero 1 e a segunda a de nmero 2. Inicialmente, no primeiro grupo de linhas, l os cinco dgitos (4 at 8) da primeira linha e os atribui varivel A resultando em A=00200, l os quatro dgitos de 9 at 12 da linha 1 e os atribui varivel B resultando em B=9177; l, a partir do 6 dgito da linha 2, at encontrar um caracter branco e os atribui varivel C resultando em C=983.00; em seguida l os caracteres seguintes da linha 2 aps o carter branco que segue a varivel C e os atribui D, resultando em D=9.0. Depois lido o segundo grupo e assim por diante at que o caracter ponto-evrgula indique o final dos dados. O resultado da leitura a seguinte tabela de dados:

44

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________ A 200 913 13710 B 9177 918 5937 C 983.00 7.00 10.71 D 9.0 4.0 14.8

Exemplo 3.5 Entrada de dados em grupos de colunas seqenciais sem limites definidos, em linhas de dados seqenciais:* EXEMPLO 3.5; DATA C; INPUT COLUNA1 COLUNA2 COLUNA3 @@; DATALINES; 10.7 45.003 7. 11.7 40.0 8.3 11.0 34 71.03 11.0 35 70.1 10 25 93.8 10 27 99.8 14 50.3 57.8 ; RUN; 1 2 3 4 5 6 7 8 9 10

O INPUT do Exemplo 3.5 l duas seqncias de colunas. Poderiam ser includas mais seqncias de colunas sem alterar o programa. So os caracteres @@ que indicam que os dados esto em grupos. Os trs primeiros valores de cada linha so pertencentes primeira seqncia de trs colunas e os ltimos trs valores de cada linha pertencem segunda seqncia, sendo cada valor separado do seguinte por um nico caracter branco. O programa l linha por linha, incluindo os dados da primeira seqncia e, em seguida, os da segunda seqncia da mesma linha de dados, resultando na tabela de dados a seguir:COLUNA1 COLUNA2 COLUNA3 10.7 11.7 11.0 11.0 10.0 10.0 14.0 45.003 40.000 34.000 35.000 25.000 27.000 50.300 7.00 8.30 71.03 70.10 93.80 99.80 57.80

45

SAS - O essencial da linguagem ____________________________________________________________________________________

3.3 PROCEDIMENTOS ESSENCIAIS COM O DATA STEPDois procedimentos associados criao de arquivos so essenciais para trabalhar com arquivos de dados. O primeiro serve para adicionar dados de um arquivo SAS em outro (PROC APPEND) e o segundo para ordenar os dados (PROC SORT). 3.3.1 PROC APPEND PROC APPEND adiciona observaes de um arquivo SAS ao fim de outro arquivo SAS, sem processar as observaes, sendo mais rpido e eficiente que o uso do DATA STEP. O arquivo SAS original chamado de BASE, ao qual sero adicionados os dados de outro arquivo SAS. S i n tax ePROC APPEND BASE=ARQUIVOBASE DATA=ARQUIVOADICIONADO ;

BASE=nomedoarquivobase Informa o nome do arquivo BASE que dever receber adio dos dados do outro arquivo SAS. DATA=nomedoarquivoadicionado Informa o nome do arquivo que ser adicionado ao final do arquivo BASE. APPENDVER=V6 Usando a Verso 6 do SAS, deve ser especificada esta opo. FORCE Fora a adio de dados mesmo quando o arquivo que est sendo adicionado contm variveis que no existem no arquivo BASE. Exemplo 3.6 Adicionando os dados de um arquivo SAS em outro* EXEMPLO 3.6; DATA ARQ1; INPUT PARCELA ESPECIE $ DAP; CARDS; 01 ANGICO 35.5 01 AROEIRA 22.0 01 TIMBAUVA 40.5 ; DATA ARQ2; INPUT PARCELA ESPECIE $ DAP; CARDS; 02 VASSOURAO 19.0 1 2 3 4 5 6 7 8 9 10 11 12

46

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________02 CABREUVA 37.0 ; PROC APPEND BASE=ARQ1 DATA=ARQ2; RUN; 13 14 15 16

No Exemplo 3.6 so adicionados os dados do arquivo SAS denominado de ARQ2 ao arquivo SAS denominado de ARQ1. Ao final do procedimento, o arquivo ARQ2 permanece inalterado e o arquivo ARQ1 passa a ter o seguinte contedo:PARCELA 01 01 01 02 02 ESPECIE ANGICO AROEIRA TIMBAUVA CABREUVA DAP 35.5 22.0 40.5 37.0

VASSOURAO 19.0

3.3.2 PROC SORT O procedimento SORT ordena as observaes existentes em um arquivo SAS por uma ou mais variveis de forma crescente ou decrescente, atravs de uma instruo BY. Pode simplesmente ser reordenado o arquivo original que passa a apresentar o ordenamento de dados requerido, ou pode ser criado um novo arquivo com os dados reordenados, permanecendo o arquivo original sem alteraes. O procedimento SORT no produz impresso por si s. S i n tax ePROC SORT ; BY Variavel-1 ...;

DATA=ArquivoDeEntrada Especifica o arquivo de dados de entrada. Se esta opo no for utilizada, o ltimo arquivo utilizado ou criado pelo programa ser utilizado no procedimento. OUT=ArquivoDeSada Esta opo especifica o arquivo de dados de sada. Se o arquivo de sada no existe, ele criado por esta opo. Por padro sem a opo OUT, o procedimento sobrepe o arquivo existente com o novo, na nova ordem.

47

SAS - O essencial da linguagem ____________________________________________________________________________________

NODUPKEY Procura e elimina observaes com valores BY duplicados. Se esta opo for especificada, todos os valores BY de cada observao so comparados com a observao predecessora. Se uma observao exatamente igual encontrada, ela eliminada do arquivo final resultante do procedimento. NODUPRECS Procura e elimina observaes duplicadas. Todos os valores das variveis de cada observao so comparados com a observao prvia se esta opo for especificada. Se um valor exato encontrado, a observao eliminada do arquivo final resultante do procedimento. NODUPRECS confere s observaes sucessivas, assim, algumas observaes duplicadas no sucessivas podem permanecer arquivo final. BY A instruo BY obrigatria e especifica as variveis pelas quais o arquivo deve ser ordenado. O padro a ordem ascendente. Se for necessrio usar ordem descendente, necessrio especificar atravs da opo DESCENDING. VARIAVEL Podem ser relacionadas quantas variveis forem necessrias (1 at N) para ordenar o arquivo, uma aps a outra, na ordem de prioridade da esquerda para a direita. DESCENDING Quando for necessrio ordenar de forma descendente, o termo DESCENDING deve ser escrito antes de cada varivel que deve ser ordenada desta forma. Se uma varivel da lista de variveis que segue a instruo BY no for precedida pela opo DESCENDING, automaticamente ser ordenada ascendentemente. Exemplo 3.7 Ordenando os dados de um arquivo SAS Utilizando os dados do arquivo de sada ARQ1 do Exemplo 3.6 anterior e reordenando o arquivo pelas variveis PARCELA e ESPECIE, tem-se o seguinte:* EXEMPLO 3.7; PROC SORT DATA=ARQ1; BY PARCELA ESPECIE; RUN; 1 2 3 4

Como resultado o contedo do arquivo ARQ1 passa ser o da tabela abaixo, onde se observa que as observaes 4 e 5 trocaram de posio com o re-ordenamento:

48

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________ PARCELA 01 01 01 02 02 ESPECIE ANGICO AROEIRA TIMBAUVA CABREUVA DAP 35.5 22.0 40.5 37.0

VASSOURAO 19.0

3.4 INSTRUES ESSENCIAIS DO DATA STEPARRAY Identificao de vetores; BY Ordenao de variveis; CARDS Chamada de cartes de dados; DATALINES Chamada de linhas de dados; DELETE Instruo de excluso de registro; DO END Repetio em lao; DROP Elimina variveis de um arquivo SAS; FILE Sada de arquivo externo; FILENAME Identificao de arquivo externo de sada; IF THEN Execuo condicional. INFILE Chamada de arquivo externo; INPUT Chamada e formatao de dados de entrada; KEEP Seleciona variveis a permanecer num arquivo SAS; MERGE Intercalao de arquivos; OUTPUT Sada de dados para arquivo interno; PUT Formatao de dados de sada; RETAIN Retm o valor de uma varivel at a prxima atribuio de valor para a mesma; SET Chamada de arquivo interno; SUM Efetua somatrios; UPDATE Efetua atualizao de dados em arquivos SAS; VAR Identificao de variveis a utilizar; WHERE Impe condies para execuo de declaraes.

49

SAS - O essencial da linguagem ____________________________________________________________________________________

3.4.1 ARRAY (INSTRUO) ARRAY um vetor de dados que pode ser de elementos literais ou nmeros. Um ARRAY deve ser escrito no incio do passo em que ser utilizado, onde se define a sua dimenso mxima e os valores iniciais. composto por um nome seguido de um nmero de ordem (subscrito) entre duas chaves, assumindo o seguinte formato:NomeDdArray{Subscrito}

S i n tax eARRAY Nome{n} ; Nome{N};

Nome o nome do vetor; no pode ser o mesmo de uma varivel de uma janela; entretanto, variveis de uma janela podem ser elementos de um vetor. {n} a dimenso do vetor (nmero de elementos); se em lugar de um nmero, for colocado um asterisco (*), a dimenso ser determinada pelo nmero total de elementos atribudos ao vetor durante o processamento, ou pelo nmero inicial de elementos; so permitidos vetores multidimensionais. $ Indica que os elementos do vetor so do tipo caracter. Comprimento o comprimento mximo de elementos no vetor. Vetores de caracteres no podem ter comprimento maior que 200. O comprimento ignorado em vetores numricos. Elementos So as variveis que constituem o vetor. ValoresIniciais So os valores para inicializar alguns ou todos os elementos do vetor. Os valores devem ser separados por vrgula ou caracteres brancos. Como padro todos os elementos so inicializados com valores perdidos. Exemplo 3.8 Criando vetores (ARRAY)* EXEMPLO 3.8; DATA ARQ; ARRAY X{10} X1-X10 (0,0,0,0,0,0,0,0,0,0); INPUT X1-X10; CARDS; 14 15 12 17 19 11 17 19 13 16 13 19 17 13 11 14 13 15 10 11 ; RUN; 1 2 3 4 5 6 7 8 9

50

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

No Exemplo 3.8 criado o arquivo SAS chamado de ARQ e com a declarao ARRAY X{10} X1-X10 (0,0,0,0,0,0,0,0,0,0) so criados 10 vetores X com 2 elementos, de X1 at X10, ou seja, X1, X2, X3, X4, X5, X6, X7, X8, X9 e X10, com todos os elementos de valor inicial zero (0); instruda a entrada de dados em colunas seqenciais de X1 at X10 e dada a entrada de dois cartes de dados (linhas) contendo dez valores cada um. O resultado so dez vetores com o seguinte contedo: X1{1}=14, X1{2}=13; X2{1}=15, X2{2}=19; X3{1}=12, X3{2}=17; X4{1}=17, X4{2}=13; X5{1}=19, X5{2}=11; X6{1}=11, X6{2}=14; X7{1}=17, X7{2}=13; X8{1}=19, X8{2}=15; X9{1}=13, X9{2}=10; X10{1}=16, X10{2}=11. O contedo do arquivo SAS criado com o nome de ARQ um vetor multidimensional, ou tabela, com 11 colunas e duas linhas, em que a primeira coluna contm o nmero de cada linha de dados que foi lida e as demais colunas contm os 10 vetores, como segue:X1 14 13 X2 15 19 X3 12 17 X4 17 13 X5 19 11 X6 11 14 X7 17 13 X8 19 15 X9 13 10 X10 16 11

O conjunto de vetores, neste caso, comparvel a uma matriz em que cada elemento pode ser referenciado individualmente, o que facilita a programao em alguns casos.51

SAS - O essencial da linguagem ____________________________________________________________________________________

3.4.2 BY (INSTRUO) A instruo BY usada para controlar uma operao com SET, MERGE, MODIFY ou UPDATE em um DATA STEP, impondo uma condio de ordenao ou de seleo de dados. S i n tax eBY Varivel-1 ; ...

Varivel Especifica variveis em seqncia hierrquica da esquerda para a direita que deve ser usada para ordenar ou controlar grupos. Variveis em uma declarao de BY so chamadas de variveis BY. Por padro o SAS ordena as variveis BY ascendentemente. O arquivo em uso deve ter sido previamente ordenado em um procedimento PROC SORT, ou deve-se usar a opo NOTSORTED. DESCENDING Quando esta opo escrita antes de uma varivel BY, indica que a ordem da varivel descendente. NOTSORTED Indica que o arquivo em uso no foi ordenado previamente em ordem alfabtica e pode ter sido ordenado por outro critrio como o cronolgico. 3.4.3 CARDS (INSTRUO) A instruo CARDS indica que a prxima linha uma linha de dados em formato de acordo com a declarao de INPUT antecessora. S i n tax eCARDS;

CARDS A instruo deve seguir uma declarao de INPUT anterior. No h argumentos para esta instruo. 3.4.4 DATALINES (INSTRUO) A instruo DATALINES equivalente instruo CARDS e indica que a prxima linha uma linha de dados em formato de acordo com a declarao de INPUT antecessora.

52

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

S i n tax eDATALINES;

DATALINES A instruo deve seguir uma declarao de INPUT anterior. No h argumentos para esta instruo. 3.4.5 DELETE (INSTRUO) Elimina a linha de dados corrente do arquivo em uso. S i n tax eDELETE;

DELETE Elimina o registro atual de dados do arquivo em uso. No h argumentos para esta instruo. 3.4.6 DO/END (INSTRUO) a instruo utilizada para controle de laos de programao, semelhante s de outras linguagens como FORTRAN e BASIC. Informa que as declaraes entre DO e END devem ser executadas em grupo at que uma varivel contadora de controle atinja seu o limite mximo. O SAS System permite trs formas de DO: DO simples; DO UNTIL; DO WHILE. S i n tax e 3.4.6.1.1 DODO variavel= Inicial TO Final ; Declaraes; END;

53

SAS - O essencial da linguagem ____________________________________________________________________________________

3.4.6.1.2 DO UNTILDO VARIAVEL=Inicial TO Final UNTIL(expresso); Declaraes; END;

OuDO UNTIL(expresso); Declaraes; END;

3.4.6.1.3 DO WHILEDO VARIAVEL= Inicial TO Final WHILE(expresso); Declaraes; END;

OuDO WHILE(expresso); Declaraes; END;

DO Inicia um lao de declaraes a serem executadas em grupo. VARIVEL Nome da varivel de controle do lao de declaraes. Inicial Valor inicial da varivel de controle. Final Valor final da varivel de controle. BY Indica que h um valor a incrementar a cada retorno que segue a palavra BY. Incremento o valor a incrementar na varivel a cada passagem. Declaraes So as declaraes a executar em cada passagem. END Indica que se o ltimo valor atribudo varivel de controle foi igual ao valor final, o lao deve ser encerrado e que devem ser executadas as declaraes escritas aps a instruo END. Enquanto o valor final no for atingido, o END faz com que o programa volte para executar todo o grupo de declaraes a partir do DO. UNTIL Significa at que, ou seja, executa o grupo de declaraes at que o valor da expresso entre parnteses seja encontrado. WHILE Significa enquanto, ou seja, executa o grupo de declaraes enquanto o valor da expresso entre parnteses for verdadeiro. Expresso qualquer expresso SAS vlida. 3.4.7 DROP (INSTRUO) Especifica os nomes das variveis que devem ser eliminadas do arquivo SAS.54

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

S i n tax e(DROP=listadevariaveis);

3.4.8 FILE (INSTRUO) Especifica o nome do arquivo SAS a ser gravado em disco conforme uma instruo FILENAME antecessora e no formato de uma declarao de PUT posterior. Deve-se evitar as palavras reservadas CON, NUL, PRN, LPT1 - LPT9 e COM1 para nomes de arquivos. S i n tax eFILE Nomedoarquivo ;

Nomedoarquivo Nome do arquivo SAS a ser gravado externamente em disco; Opes e host-opes H vrias opes para execuo desta instruo, mas no so consideradas essenciais. Exemplo 3.9 Gravao em disco de arquivos externos permanentes* EXEMPLO 3.9; DATA ARQSAS1; INPUT X Y Z; CARDS; 1 2 5 2 6 8 3 9 11 4 12 18 ; DATA _NULL_; FILENAME ARQSAS2 "C:\SASEXEMPLOS\ARQEXTERNO.DAT"; SET ARQSAS1; FILE ARQSAS2; PUT X Y X; RUN; 1 2 3 4 5 6 7 8 8 9 10 11 12 13 14

As declaraes do programa do Exemplo 3.9 realizam o seguinte: Declarao 1 (DATA ARQSAS1;) Cria o arquivo SAS chamado de ARQSAS1; Declarao 2 (INPUT X Y Z;) Instrui o formato de entrada de trs colunas X Y e Z; Declarao 3 (CARDS;) Instrui o incio das linhas de dados; Linhas 4 a 7 (valores) Entrada de 4 linhas de dados; Linha 8 (;) Finaliza a entrada de dados;

55

SAS - O essencial da linguagem ____________________________________________________________________________________

Declarao 4 (DATA _NULL_;) Cria o arquivo temporrio _NULL_; Declarao 5 (FILENAME ARQSAS2 "C:\SASEXEMPLOS\ARQEXTERNO.DAT";) Instrui o programa para gravar o arquivo SAS chamado de ARQSAS2 no endereo C:\SASEXEMPLOS\ com o nome de ARQEXTERNO.DAT; Declarao 6 (SET ARQSAS1;) Chama o arquivo SAS ARQSAS1 para constituir o arquivo temporrio; Declarao 7 (FILE ARQSAS2;) Cria o arquivo ARQSAS2 para ser gravado externamente conforme o formato da declarao de PUT a seguir; Declarao 8 (PUT X Y X;) Formata os dados para gravao no arquivo externo; Declarao 9 (RUN;) Executa o programa. Como resultado criado o arquivo de dados externo ARQEXTERNO.DAT com o seguinte contedo:1 2 3 4 2 5 6 8 9 11 12 18

O arquivo ARQEXTERNO.DAT pode ser acessado por outros programas atravs de uma declarao INFILE de um DATA STEP. 3.4.9 FILENAME (INSTRUO) Associa o nome de um arquivo SAS, referenciado em uma declarao de FILE posterior, com um arquivo externo. O nome do arquivo externo reconhecido pelo sistema operacional e estar disponvel para uso por qualquer programa no endereo especificado. Veja tambm a instruo FILE, anterior, com exemplo completo. Devese evitar as palavras reservadas CON, NUL, PRN, LPT1 - LPT9 e COM1 para nomes de arquivos. Sin tax eFILENAME NomeDoArquivo 'Drive:\Endereo\NomeDoArquivoExterno.DAT' ;

NomeDoArquivo Especifica o nome de arquivo SAS a ser gravado externamente. um apelido temporrio para o arquivo. Deve ser o mesmo da declarao de FILE. Pode ser qualquer nome SAS vlido para arquivos SAS. NomeDoArquivoExterno Especifica o endereo e o nome do arquivo a ser gravado em disco. Podem ser quaisquer endereos e nomes de arquivos vlidos para o56

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

sistema operacional. Sugere-se que a extenso ou sufixo do arquivo seja .SAS para ser compatvel com o SAS System. Host-Opes H vrias host-opes para execuo desta instruo, mas no so consideradas essenciais. 3.4.10 IF THEN (INSTRUO) Avalia uma expresso e, condicionalmente, executa clusula(s) ou declaraes subseqentes (Veja Exemplo 2.13 B). S i n tax eIF Expresso THEN Clusula;

ou

IF Expresso THEN DO; Declaraes; END;

Expresso Especifica uma ou mais expresses a serem avaliadas como condio para execuo de uma instruo ou de declaraes subseqentes; Clusula uma instruo a ser executada aps THEN se o resultado da expresso for verdadeiro ou aps ELSE se o resultado da expresso for falso; Declaraes So quaisquer declaraes SAS vlidas a serem executadas entre THEN DO e END se o resultado da expresso for verdadeiro, ou entre ELSE DO e END, se o resultado for falso. 3.4.11 INFILE (INSTRUO) Especifica o nome um arquivo fonte a ser lido por uma declarao de INPUT. Um arquivo fonte um arquivo a ser lido; geralmente um arquivo externo. Deve-se evitar as palavras reservadas CON, NUL, PRN, LPT1 - LPT9 e COM1 para nomes de arquivos. Sin tax eINFILE Nomedoarquivo ;

Nomedoarquivo Identifica o nome do arquivo fonte da entrada de dados, geralmente externo. Opes H algumas dezenas de opes para a instruo INFILE, mas raramente so utilizadas em programas simples. Algumas opes teis so as de caracteres de57

SAS - O essencial da linguagem ____________________________________________________________________________________

delimitao. Exemplos: infile 'a:\arq.txt' DELIMITER='/'; * l o arquivo externo arq.txt com colunas separadas por uma barra /; infile 'a:\arq.txt' EXPANDTABS; * l o arquivo externo arq.txt com colunas separadas por caracteres de tabulao;. Tabelas do MS-Excel salvas como somente texto tm caracteres de tabulao como separador das colunas e podem ser lidas diretamente com a opo EXPANDTABS. ENCODING=encoding-value Especifica um cdigo de caracteres para processar um arquivo externo. Host-opes Nomes de entrada e sada externos que so especficos para o sistema operacional. 3.4.12 INPUT (INSTRUO) A instruo INPUT comanda a entrada de dados. atravs desta instruo que se informa ao programa em que formato os dados esto, definindo nomes de variveis e a forma de separao dos dados, seja em arquivos externos ou em dados escritos no prprio programa aps a instruo CARDS ou DATALINES. S i n tax eINPUT Variavel-1 ;

#n Determina que o nmero de ordem da linha que deve ser lida a de nmero n em um grupo de linhas de dados, em que n um nmero inteiro; quando se usa este tipo de controle, o SAS assume que as linhas de dados devem ser lidas por grupos com um nmero de linhas igual de maior ordem informada como valor de n. No necessrio ler todas as linhas do grupo entre a de menor e a de maior nmero de ordem do grupo, mas o nmero total de linhas de cada grupo sempre igual ao valor da linha de maior nmero de ordem. @n Determina que a varivel seja lida a partir do dgito n da linha que est sendo lida, em que n um nmero inteiro; pode ser usada a opo @(expresso) que l o valor da varivel a partir do dgito resultante da expresso entre parnteses, em que (expresso) uma expresso SAS que resulta em um nmero inteiro. Varivel Especifica o nome da varivel ou variveis a serem lidas na posio corrente do registro atual. Cada varivel pode ser seguida por uma especificao de formato de varivel e/ou de posio (informat) da mesma no registro (linha de dados) que est sendo lido.

58

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

Formato Especifica um formato de entrada de dados. Os formatos padro de entrada de dados podem ser de caracteres, quando o nome da varivel no INPUT deve ser seguido pelo caracter $; ou numrico, quando no o caracter $ aps o nome da varivel. A especificao de dados de variveis do tipo caracter obrigatria e se no for feita, o programa apresenta uma mensagem de erro e no processa o restante do passo de programa. H muitos tipos de formatos de entrada possveis com a instruo INPUT. Se um formato for especificado, os dados devem obrigatoriamente estar na forma especificada. O SAS System, para dados numricos de uma varivel sem especificao de formato de entrada, assume o formato que possa servir para todos os dados encontrados para a varivel. Para variveis de caracteres sem especificao de comprimento (nmero de caracteres), o SAS l dados de qualquer comprimento, mas converte-os internamente para o padro de 8 caracteres de comprimento. Para mais informaes, veja o manual on line SAS Language Reference: Dictionary. m-n Determina que a varivel deva ser lida do dgito m at o n da linha ou registro corrente, sendo m e n nmeros inteiros. Diretivasderegistros - A principal diretiva de leitura de registro expressa pelo caracter de controle /, que determina o avano da leitura de dados para o prximo registro. Caracter branco Quando valores so simplesmente escritos em linhas e em cada linha so separados por caracteres brancos, o SAS entende que a cada nova linha inicia um novo registro e que os caracteres brancos separam os valores das variveis listadas na declarao de INPUT. @@ - Informa que as variveis listadas devem ser lidas em grupos consecutivos da mesma linha de dados, criando um novo registro a cada grupo completo de variveis lidas na mesma linha, quando uma nova linha encontrada a leitura continua a ser feita em grupos da nova linha e assim por diante. Exemplo 3.10 Exemplos de declaraes de input* EXEMPLO 3.10; DATA A; INPUT @1 NOME $ @20 SEXO $ @(20+2) IDADE 2. PESO 4.1; CARDS; NOMEA67890123456789M 10 217 NOMEB67890123456789F 20 593 ; PROC PRINT DATA=A; RUN; 1 2 3 4 5 6 7 8 9

O programa l: A partir do dgito 1, a varivel NOME, do tipo caracter; A partir do dgito 20, a varivel SEXO , do tipo caracter;

59

SAS - O essencial da linguagem ____________________________________________________________________________________

A partir do dgito 22, a varivel IDADE, do tipo numrico, com dois dgitos significativos e nenhum aps o ponto decimal; Aps o primeiro caracter branco que segue a idade, l a varivel PESO, do tipo numrico decimal com um total de 4 dgitos, sendo dois dgitos significativos e um aps o ponto decimal, implicitamente um dgito includo para o ponto decimal aps a leitura, por isso necessrio declarar um total de 4 dgitos. Se a varivel tivesse sinal de negativo ou positivo seria necessrio adicionar mais um dgito ao comprimento total. O programa imprime o arquivo A como segue:The SAS System OBS 1 2 NOME NOMEA678 NOMEB678 SEXO M F IDADE 10 20 PESO 21.7 59.3

Observa-se que o SAS converteu o contedo da varivel NOME para o comprimento padro de 8 dgitos, pois o comprimento da varivel no foi explicitamente especificado. 3.4.13 KEEP (INSTRUO) A instruo KEEP informa as variveis que devem ser retidas em um arquivo SAS. As demais variveis por ventura existentes, sero eliminadas do arquivo ao final do processamento do passo de programa. S i n tax eDATA NomeDoArquivo (KEEP=ListaDeVariveis);

NomeDoArquivo o nome do arquivo de dados (DATA SET) que est sendo criado ou modificado pelo DATA STEP. NomeDoArquivo So os nomes das variveis que devem ser mantidas no arquivo de dados aps a concluso do DATA STEP.

60

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

3.4.14 MERGE (INSTRUO) A instruo MERGE intercala dois ou mais arquivos SAS atravs de uma ou mais variveis previamente ordenadas, comuns aos arquivos que esto sendo intercalados. O ordenamento pode ser feito atravs do procedimento PROC SORT. Todos os arquivos envolvidos devem estar ordenados pelas variveis de controle da intercalao, na mesma seqncia de ordenamento, definidas em uma declarao de BY que escrita imediatamente aps a declarao de MERGE. S i n tax eMERGE NomeDoArquivo-1 NomeDoArquivo-2 ; BY ListaDeVariveisDeIntercalao;

NomeDoArquivo Identifica cada arquivo que ser intercalado para formar o arquivo resultante da intercalao. Pelo menos dois arquivos devem ser utilizados. Opes So as opes de ordenamento para intercalao. Se no forem especificadas, o SAS intercala o valor de uma varivel em um arquivo com o valor igual da mesma varivel em cada um dos demais arquivos constantes da declarao de MERGE. BY ListaDeVariveisDeIntercalacao So os nomes das variveis pelas quais se deseja intercalar os arquivos. END=Varivel Nomeia e cria uma varivel temporria que contm um indicador de final de arquivo (EOF). Exemplo 3.11 Intercalando arquivos SAS No Exemplo 3.6 foi demonstrado como adicionar dados de um arquivo em outro. Um programa usando dois arquivos para intercal-los com as variveis PARCELA e ESPECIE, atravs da instruo MERGE, pode ser o seguinte:* EXEMPLO 3.11; TITLE; DATA ARQUIVO1; INPUT PARCELA ESPECIE $ DAP; CARDS; 1 2 3 4

61

SAS - O essencial da linguagem ____________________________________________________________________________________01 ANGICO 35.5 01 AROEIRA 22.0 01 TIMBAUVA 40.5 01 CABREUVA 51.5 ; DATA ARQUIVO2; INPUT PARCELA ESPECIE $ DAP; CARDS; 02 TIMBAUVA 11.35 02 VASSOURAO 19.0 02 ANGICO 45.5 03 AROEIRA 12.0 03 ANGICO 59.0 02 AROEIRA 32.5 03 ANGICO 33.0 03 CABREUVA 37.0 ; PROC SORT DATA=ARQUIVO1; BY PARCELA ESPECIE; PROC SORT DATA=ARQUIVO2; BY PARCELA ESPECIE; DATA ARQUIVO3; MERGE ARQUIVO1 ARQUIVO2; BY PARCELA ESPECIE; PROC PRINT DATA=ARQUIVO3; RUN; 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Como resultado tm-se o seguinte relatrio HTML impresso:Obs 1 2 3 4 5 6 7 8 9 10 11 12 PARCELA 1 1 1 1 2 2 2 2 3 3 3 3 ESPECIE ANGICO AROEIRA CABREUVA TIMBAUVA ANGICO AROEIRA TIMBAUVA VASSOURA ANGICO ANGICO AROEIRA CABREUVA DAP 35.50 22.00 51.50 40.50 45.50 32.50 11.35 19.00 59.00 33.00 12.00 37.00

Exemplo 3.12 Intercalando arquivos SAS Se, em outro caso, fosse necessrio intercalar aos dois primeiros do exemplo anterior com um arquivo contendo os dados das alturas das rvores e calcular o volume das mesmas em metros cbicos utilizando a

62

Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________

frmula VOLUME=0,6.DAP.ALTURA/40000, isso poderia ser feito como no programa a seguir:* EXEMPLO 3.12; TITLE; DATA ARQUIVO1; INPUT PARCELA ESPECIE $ DAP; CARDS; 01 ANGICO 35.5 01 AROEIRA 22.0 01 TIMBAUVA 40.5 01 CABREUVA 51.5 ; DATA ARQUIVO2; INPUT PARCELA ESPECIE $ DAP; CARDS; 02 TIMBAUVA 11.35 02 VASSOURAO 19.0 02 ANGICO 45.5 03 AROEIRA 12.0 03 ANGICO 59.0 02 AROEIRA 32.5 03 ANGICO 33.0 03 CABREUVA 37.0 ; DATA ARQUIVO3; INPUT PARCELA ESPECIE $ ALT