Escolar Documentos
Profissional Documentos
Cultura Documentos
Nível Básico
UNICAMP/CENAPAD-SP
2
CONTEÚDO
1 - INTRODUÇÃO pag.04
1.1 - HISTÓRICO pag.04
1.2 - ATUALMENTE pag.04
1.3 - DEFINIÇÃO BÁSICA pag.05
1.4 - MÓDULOS DO SAS pag.06
1.5 - CONCEITOS BÁSICOS pag.07
1.6 - ARQUIVOS SAS pag.08
1.7 - ESTRUTURA DOS ARQUIVOS SAS pag.09
1.8 - NOMECLATURA PARA ARQUIVOS E VARIÁVEIS pag.10
1.9 - SINTAXE DOS COMANDOS pag.11
1.10 - AMBIENTE WINDOWS pag.12
1º LABORATÓRIO pag.44
2º LABORATÓRIO pag.45
3º LABORATÓRIO pag.63
4º LABORATÓRIO pag.83
5º LABORATÓRIO pag.103
6º LABORATÓRIO pag.107
7º LABORATÓRIO pag.113
11 - BIBLIOGRAFIA pag.114
4
1 - INTRODUÇÃO
1.1 - HISTÓRICO
Década de 60;
1.2 - ATUALMENTE
- Recuperação de dados;
- Gerenciamento de arquivos;
- Análise estatística;
- Geração de gráficos;
- Geração de relatórios;
- Geração de aplicativos;
- Soluções de negócios;
Acessar dados;
Administrar dados;
Analisar dados;
Apresentar dados;
8
CARLOS M 12 1.70
GILBERTO M 25 1.65
RICARDO M 30 1.80
. . . .
. . . .
. . . .
ALICE F 28 1.68
MARCIA F 22 1.75
S Possuir de 1 à 32 caracteres;
Ex.1:
DATA EXEMPLO1 ;
INFILE “C:\TEMP\CADASTRO.TXT”;
INPUT PRIMEIRO_NOME $ 1-8 SEXO $ 10 IDADE 13-14 ALTURA 16-19 ;
RUN;
11
Ex.2:
DATA EXEMPLO1 ;
INFILE “C:\TEMP\DADOS.DATt”;
INPUT NOME $ 1-8 SEXO $
IDADE $ 13-14 ALTURA 16-19 ;
RUN;
CONFIGURAÇÃO DE TECLADO
2.1 - INTRODUÇÃO
Fluxo de Execução
Inicio do
DATA Step
Abrir
arquivo
para gravar
Abrir
arquivo
para leitura
Ler novo
registro
processa
registro
Salvar
registro no
arquivo para
gravaçao
NAO Ultimo
registro
SIM
Fim do
DATA Step
21
Comando de Definição;
Ex.3:
DATA ENDERECO ;
DATA ARQ1 ARQ2 ARQ3 ;
DATA ENT.CADASTRO ;
DATA ;
DATA _NULL_;
22
Comando de Definição;
DATA EXEMPLO ;
INFILE 'C:\TESTE\DADOS.TXT' MISSOVER;
. . .
. . .
. . .
23
Comando de Execução;
Ex.5:
DATA EXEMPLO ;
SET CADASTRO ;
.
.
.
24
Comando de Execução;
Ex.6:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
C A R L O S M 1 8 1 7 0 6 8 . 0
C A R L A F 2 6 1 7 8 7 2 . 0
S I L V I A F 2 1 1 6 5 6 0 . 5
DATA FICHA ;
INFILE “A:\CADASTRO.TXT”;
INPUT NOME $ SEXO $ IDADE ALTURA PESO ;
RUN;
26
C A R L O S M 1 8 1 7 0 6 8 . 0
C A R L A F 2 6 1 7 8 7 2 . 0
S I L V I A F 2 1 1 6 5 6 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
“DDMMMYYYY”D “01JAN1960"d
29
Ex.8:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
C A R L O S M 1 8 1 7 0 6 8 . 0
C A R L A F 2 6 1 7 8 7 2 . 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 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
R J 2 0 4 5 6 3 0 0 6 , 7 3 9 , 9 9 2 8 8 F 1 . 2 E 5
S P 1 1 5 0 0 0 0 0 9 , 4 6 4 , 2 6 5 6 C C 1 2 5 E 5
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
Posicionadores de COLUNA ( @ , + )
Posicionadores de LINHA ( # , / )
1 1 1 1 1 B B B B C C C C
D D D D
E E E E F F
2 2 2 2 2 b b b b c c c c
d d d d
e e e e 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 A B C D E F D1
- Detalhes de leitura:
INPUT JAN 3. FEV 3. MAR 3. ABR 3. MAI 3. JUN 3. ;
INPUT (JAN FEV MAR ABR MAI JUN) (3.) ;
Comando de Definição;
O “;” indica fim de dados e deve ser posto, sozinho, em uma linha;
Ex.11:
DATA FICHA ;
INPUT NOME $ SEXO $ IDADE ALTURA PESO ;
CARDS;
Antônio 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.1 - INTRODUÇÃO
- Os comandos em uma PROC não seguem uma hierarquia, ou seja, podem ser
colocados em qualquer ordem dentro da PROC;
3.1.2 - Comando BY
TITLE "<cabeçalho>" ;
TITLE1 "<cabeçalho>" ;
...
TITLE10 "<cabeçalho>" ;
FOOTNOTE "<rodapé>" ;
FOOTNOTE1 "<rodapé>" ;
...
FOOTNOTE10 "<rodapé>" ;
Ex.12:
Relatório de Funcionarios
NOME FUNCAO
ANTUNES ANALISTA
TERESA ANALISTA
CLAUDIA PROG
MARCOS PROG
JULIO OPER
Ex.13:
Ex.14:
NOME SALARIO
ANTUNES 1800
TERESA 1650
-------
FUNCAO 3450
NOME SALARIO
JULIO 850
NOME SALARIO
CLAUDIA 1200
MARCOS 1200
-------
FUNCAO 2400
====
6700
40
4 - Arquivo de Mensagens - "SAS Log"
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 DATA EXEMPLO1 ;
2 INFILE "C:\DADOS.TXT" ;
3 INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO 18-23 ;
DATA EXEMPLO1 ;
INFILE 'C:\TEMP\LEITURA.DAT';
INPUT NOME $1-8 SEXO $10 FUNCAO# $11-17 SALARIO 18-23 ;
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;
SAS Log
58 DATA EXEMPLO1 ;
59 INFILE 'C:\TEMP\LEITURA.DAT';
60 INPUT NOME $1-8 SEXO $10 FUNCAO $11-17 SALARIO $18-23 ;
61 RUN;
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 BÁSICOS DE PROGRAMAÇÃO EM DATA STEP
[apelido].<nome do arquivo>
OBS: O SAS define uma área padrão, temporária, 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 ;
3 - Leia os dados deste arquivo ( Utilize o comando INPUT, colunado ou formatado ). Sabendo-se
que o conteúdo do arquivo está dividido em diversos campos na seguinte ordem:
NOME Caractere 30 1
SEXO Caractere 1 31
IDADE Numérico 2 32
PESO Numérico 6 2 34
ALTURA Numérico 4 2 40
FILHOS Numérico 2 55
RG Caractere 15 57
CPF Caractere 11 72
EMPRESA Caractere 15 83
FUNCAO Caractere 12 98
4 - Releia parte do campo EMPRESA, na posição 89, defina a variável TIPO DE EMPRESA, com
9 caracteres;
5 - Gere um relatório com os resultados da leitura do arquivo. Leia com atenção as mensagens na
janela LOG. Salve o seu programa!.
Utilizando o arquivo SAS gerado no laboratório anterior, monte programas SAS que:
1 - Gere um relatório:
- com as variáveis: NOME, EMPRESA, CARGO e SALARIO;
- deverá ter espacejamento DUPLO;
- não poderá aparecer a coluna com o número de registros ( OBS );
( Utilize o procedimento PRINT )
2 - Gere:
- um arquivo SAS permanente ordenado por EMPRESA;
- um relatório com todos os dados, relacionados por EMPRESA;
(Utilize os procedimentos SORT e PRINT)
<variável> = <expressão> ;
- Constantes :
- Concatenação de caracteres : ||
A=”PAULO” || “ANTUNES”; ==> A=”PAULOANTUNES”
A=”PAULO” || “ ” || “ANTUNES”; ==> A=”PAULO ANTUNES”
( ) Função ** * / + -
=================,
A=X+Y+Z ;
A=X+Y*Z ;
A=X/(Y/Z) ;
- Funções:
S=SQRT(X) ;
A=INT(X) ;
Z=ABS(SQRT(X)-2) ;
47
Ex.19:
Arquivo: NUMEROS.TXT
01 02 03 04 05 06 07 08 09 10 11 12
9 4 5 6 5 0 1 0 5 0
9 5 6 2 8 0 1 1 4 0
9 6 8 4 5 0 2 4 5 0
Analise Contabil
Comando de Definição;
Deve ser posicionado sempre antes do comando que irá utilizar a variável
definida;
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
Comando de Execução;
VIVIANE 2.5 A
LIDIA 9.5 A
PAULO 4.5 A
CLAUDIO 6.8 A
LUIZ 5.5 A
DATA NOTA ;
INFILE “A:\NOTAS.TXT”
INPUT NOME $ 1-8 NOTA 9-11;
IF NOTA LT 3 THEN CONCEITO="E" ;
ELSE IF 3 <= NOTA < 5 THEN CONCEITO="D" ;
ELSE IF 5 LE NOTA LT 7 THEN CONCEITO="C" ;
ELSE IF 7 LE NOTA LT 9 THEN CONCEITO="B" ;
ELSE CONCEITO="A" ;
RUN;
51
Ex.23: Operador Lógico
LIBNAME TESTE "A:\" ;
DATA TESTE.CLASSE ;
INFILE “C:\ESCOLA\CLASSE.TXT”;
INPUT NOME $ 1-7 SEXO $ 8 IDADE 10-11 @13 ALTURA 4.2 ;
IF (SEXO="1" AND ALTURA<1.55) OR (SEXO="1" AND IDADE<12) THEN CLASSE="100" ;
ELSE IF (SEXO="2" AND ALTURA<1.55) OR (SEXO="2" AND IDADE<12) THEN CLASSE="200" ;
ELSE CLASSE="300" ;
RUN;
Arquivo: CLASSE.TXT
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
P A U L A 1 1 1 1 . 6 0
F L A V I A 1 1 5 1 . 6 5
M A R C O S 2 1 1 1 . 6 0
L U I S 2 1 4 1 . 6 0
NOME CLASSE
PAULA 100
FLAVIA 300
MARCOS 200
LUIS 300
Comando de Execução;
Comando especial que pode ser executado em DATA Step e em PROC Step;
Comando que possui como única ação, selecionar registros, se uma condição for
verdadeira;
Comando WHERE não pode ser utilizado com variáveis que estão sendo criadas
no DATA Step por comandos de atribuição, ou pelo comando INPUT;
WHERE <expressão> ;
Comando de Execução;
Comando de Execução;
Ex.27: Interativo
DO MES="JAN","FEV","MAR" ; ( 3 vezes )
DO I = 1 TO 120 BY 2 ; ( 60 vezes )
Comando de Execução;
Ex.28:
DATA ;
X=0; N=0;
DO WHILE (N LE 5) ; ( Avaliado no início. Executa 6 vezes )
X=X+N**2 ;
N=N+1 ;
END ;
RUN;
PROC PRINT;RUN;
SAS System
X N
55 6
56
5.9 - Comando DO UNTIL
Comando de Execução;
DO UNTIL <(expressão)> ;
...
END;» ( Avaliação no fim )
Ex.29:
DATA ;
X=0; N=0;
DO UNTIL (N GT 5) ;
X=X+N**2 ;
N=N+1 ;
END ; ( Avaliado no fim. Executa 6 vezes )
RUN;
PROC PRINT;RUN;
SAS System
X N
55 6
57
5.10 - Comandos DROP e KEEP
Comandos de Definição;
Ex.30:
DATA CLASSE ;
INFILE "C:\ALUNOS\CADASTRO.DAT" ;
INPUT NOME $ 15. SEXO $ 1. END $ 30. CEP $ 8. RG $ 10. CIC $ 11.
MAT $ 8. INST $ 10. PESO 3. ALT 3. ESTCIV $ 1. ;
RUN;
DATA SUBARQ1 ;
SET CLASSE ;
DROP PESO ALT ESTCIV ;
RUN;
DATA SUBARQ2 ;
SET CLASSE ;
KEEP NOME END CEP ;
RUN;
58
5.11 - Opções de Arquivos SAS
Todo arquivo com estrutura SAS possui opções de configuração, que são
especificados após cada arquivo, entre parênteses;
São opções do arquivo, que tem sua ação vinculada ao comando aonde o arquivo
está sendo especificado;
DATA CLASSE ;
INFILE "C:\ALUNOS\CADASTRO.DAT" ;
INPUT NOME $ 15. SEXO $ 1. END $ 30. CEP $ 8. RG $ 10. CIC $ 11.
MAT $ 8. INST $ 10. PESO 3. ALT 3. ESTCIV $ 1. ;
RUN;
DATA SUBARQ1 (DROP=PESO ALT ESTCIV) ;
SET CLASSE ;
RUN;
DATA SUBARQ2 ;
SET CLASSE (KEEP=NOME END CEP);
RUN;
59
5.12 - Comando DELETE
Opção de Execução;
Ex.32:
DATA PRODUTO ;
INFILE “D:\DADOS\PRODUTO.TXT”
INPUT DEP $ 1-2 UNIDADE 4-5 CUSTO 7-9 ;
IF UNIDADE <= 0 OR CUSTO <= 0 THEN DELETE ;
CUSTOUNI=CUSTO/UNIDADE ;
RUN;
Arquivo: PRODUTO.TXT
01 02 03 04 05 06 07 08 09
1 7 1 0 5 2 5
4 2 5 0 - 6
3 1 5 1 0 0
2 4 0 3
5 1 1 5
PROC PRINT NOOBS ;
RUN ;
The SAS System
17 10 525 52.5
31 5 100 20.0
5 1 15 15.0
60
5.13 - Comando OUTPUT
Comando de Execução;
OUTPUT ;
R O S A N A 5 0 1 5 0 0
P A U L O 1 0 1 . 1 1 0 0 0
M A R I A 1 0 1 . 1 5 8 0 0
Ex.34:
LIBNAME ARQ "C:\ALUNOS" ;
DATA ARQ.HOMENS ARQ.MULHERES ;
SET ARQ.CADASTRO ;
IF SEXO="F" THEN OUTPUT ARQ.MULHERES ;
ELSE OUTPUT ARQ.HOMENS ;
Comando de Definição;
Ex.35:
DATA;
LENGTH AUX $ 10
NUM 4 ;
...
RUN;
63
3º LABORATÓRIO
- Crie três variáveis novas que servirão como acumuladoras do número de pessoas
casadas (CAS), solteiras (SOL) e separadas (SEP), a partir da análise da variável
ESTADO CIVIL
SALARIO=SALARIO*1.1
5 - Monte um programa que crie dois novos arquivos SAS, temporários, (ATLAS e
MANTAS) ;
7 - Com os dados do arquivo CADASTRO, monte um programa SAS que gere um arquivo
temporário com as pessoas entre 20 e 30 anos, sendo que, cada pessoa selecionada
receberá um bonus de R$ 3.500,00 ao salário anual, até completar 30 anos. Crie uma
variável nova (BONUS) com o valor total de bonus recebido por cada pessoa selecionada,
e uma variável (NUM) com o número de vezes que a pessoa recebeu o bonus;
6.1 - INTRODUÇÃO
Toda função SAS é recursiva. Função pode ser executada dentro de outra
função, como parâmetro da função;
Tipos de funções:
- Funções de Tratamento de Caracter;
- Funções de Tratamento de Data e Hora;
- Funções Matemáticas;
- Funções de Estatísticas Descritivas;
- Funções Trigonométricas;
- Funções Hiperbólicas;
- Funções de Trucamento;
- Funções para geração de Números Randômicos;
- Funções de Probabilidade;
- Funções Financeiras;
- Funções de Macro;
67
6.2 - Funções de Tratamento de Caracter
<variável>=UPCASE (argumento) ;
<variável>=LOWCASE (argumento) ;
Número:
3 5
Caracter:
3 5
69
6.2.4 - Função COMPRESS
<variável>=COMPRESS(arg1,[arg2]);
<variável>=LENGTH(arg);
DATA NOVO ;
INFILE “C:\ID\RG.DAT”;
INPUT RG $ 18. ;
RG1=0 ; RG2=0 ;
AUX1=COMPRESS ( RG ) ;
AUX2=LENGTH ( AUX1 ) ;
DO I=1 TO AUX2 ;
AUX3=SUBSTR ( AUX1, I, 1 ) ;
IF ("0" LE AUX3 LE "9") THEN RG1=RG1+1 ;
ELSE RG2=RG2+1 ;
END ;
RG_NUM=SUBSTR ( AUX1, 1, RG1 ) ;
RG_SSP=SUBSTR ( AUX1, RG1+1, RG2 );
RG_SSP = UPCASE ( RG_SSP ) ;
DROP AUX1 AUX2 AUX3 I RG1 RG2 ;
RUN;
Arquivo: RG.TXT
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
5 8 4 1 6 6 s s p / d f
2 3 4 s s p / s p
2 2 3 9 7 4 8 8 s s p / r g
SAS
RG_NUM RG_SSP
584166 SSP/DF
234 SSP/SP
22397488 SSP/RG
71
6.2.6 - Função SCAN
Ex.38:
DATA PALAVRA;
REGIAO=”FRANÇA#ALEMANHA#ESPANHA#ITÁLIA”;
PAIS=SCAN(REGIAO,1,”#”); OUTPUT ;
PAIS=SCAN(REGIAO,2,”#”); OUTPUT ;
PAIS=SCAN(REGIAO,3,”#”); OUTPUT ;
PAIS=SCAN(REGIAO,4,”#”); OUTPUT ;
RUN;
PROC PRINT; VAR PAIS; RUN;
PAIS
FRANÇA
ALEMANHA
ESPANHA
ITÁLIA
72
6.2.7 - Função INDEX
Ex.39:
DATA POSICAO;
REGIAO=”FRANÇA#ALEMANHA#ESPANHA#ITÁLIA”;
LOCAL=INDEX(REGIAO,”ESPANHA”); OUTPUT ;
LOCAL=INDEX(REGIAO,”NHA”); OUTPUT ;
LOCAL=INDEX(REGIAO,”I”); OUTPUT ;
LOCAL=INDEX(REGIAO,”ING”); OUTPUT ;
RUN;
PROC PRINT; VAR LOCAL; RUN;
LOCAL
17
13
25
0
73
DATA NOVO ;
LENGTH AUX $ 6;
INFILE “C:\ID\RG.DAT”;
INPUT RG $ 18. ;
RG_NUM=SCAN( RG, 1,”SSP” ) ;
AUX=SCAN( RG, 2, “SSP” );
RG_SSP=”SSP” || UPCASE(AUX );
RUN;
Arquivo: RG.TXT
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
5 8 4 1 6 6 s s p / d f
2 3 4 s s p / s p
2 2 3 9 7 4 8 8 s s p / r g
SAS
RG_NUM RG_SSP
584166 SSP/DF
234 SSP/SP
22397488 SSP/RG
74
DATA NOVO ;
INFILE “C:\ID\RG.DAT”;
INPUT RG $ 18. ;
RG=UPCASE(RG);
IF INDEX(RG,”S”)>0;
RG_NUM=SUBSTR(RG, 1, INDEX(RG,”S” )-1) ;
RG_SSP=SUBSTR(RG, INDEX(RG,”S”));
RUN;
Arquivo: RG.TXT
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
5 8 4 1 6 6 s s p / d f
2 3 4 s s p / s p
2 2 3 9 7 4 8 8 s s p / r g
SAS
RG_NUM RG_SSP
584166 SSP/DF
234 SSP/SP
22397488 SSP/RG
75
6.3 - Funções de Truncamento
DATA DADOS ;
INFILE “A:\NUMEROS.DAT”;
INPUT X 7.;
TRUNCA = INT ( X ) ;
INTEIRO = ROUND ( X , 1 ) ;
DEZENA = ROUND ( X , 10 ) ;
CENTENA = ROUND ( X , 100 ) ;
DECIMO = ROUND ( X , 0.1 ) ;
CENTES = ROUND ( X , 0.01 ) ;
MULT5=ROUND ( X , 5 ) ;
RUN;
Arquivo: NUMEROS.DAT
01 02 03 04 05 06 07
3 2 6 . 5 4
1 9 7 7 . 0 9
5 5 8 . 8 8
1 5 8 8 . 2 9
var1, var2, . . . varn Nome das variáveis numéricas que se deseja efetuar um
somatório.
var1, var2, . . . varn Nome das variáveis numéricas que se deseja efetuar
uma média.
Arquivo: TEMP.DAT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
2 3 . 5 2 5 . 2 2 4 . 8 2 5 . 7 2 5 . 8 2 2 . 0
1 8 . 5 1 7 . 4 1 8 . 9 1 8 . 9 2 0 . 5 2 0 . 8
T1 T2 T3 T4 T5 T6 TEMPSOMA TEMPMED
Função que gera uma data a partir de valores de dia, mês e ano
<variável>=DAY(data);
<variável>=MONTH(data);
<variável>=YEAR(data);
<variável>=TODAY();
<variável>=TIME();
<variável>=HOUR(tempo);
<variável>=MINUTE(tempo);
<variável>=SECOND(tempo);
%SYSFUNC(função, [formato]);
DATA ANIVERSARIO;
INPUT DIA MES ANO;
ANIV=MDY(MES,DIA,ANO);
IDADE_ANO=INT((TODAY()-ANIV)/365.25);
IDADE_DIA=”01jan2000"d - ANIV;
CARDS;
10 11 1976
25 04 2000
14 08 1934
08 01 1967
03 03 1955
;
RUN;
PROC PRINT;RUN;
Relatório de Idades
Em relação a data de hoje: 04/04/2006
IDADE_ IDADE_
Obs DIA MES ANO ANIV ANO DIA
OBS: Utilize as funções: SUBSTR, INT, ROUND, YEAR, MDY, INDEX ou SCAN e o
operador ||.
2 - A partir dos dados do arquivo CADASTRO, monte um programa que crie um arquivo SAS, temporário,
e as novas variáveis novas:
SAL_COM Salário comissionado, só para quem possui cargo de chefia. Será o resultado do
SALARIO*1.2 ;
SAL_MED Média dos salários. Será o resultdo da média entre as variáveis: SAL, SAL_FAM e
SAL_COM ;
OBS: Utilize as funções SUM e MEAN, para somar e tirar a médias entre as variáveis,
respectivamente.
84
7 - Comandos de Configuração
Algumas opções:
OBS= Opção que especifica qual será o último registro a ser processado;
FIRSTOBS=. Opção que especifica qual será o primeiro registro a ser processado;
Ex.46:
P A U L O 5 9 . 0 9 9 . 5
M A R C I O 5 7 . 3 8 3 . 0
S O N I A 5 1 . 3 5 0 . 5
Data de
Obs NOME Aniversário Salário
...
padrões:
opção genérica:
Data de
Obs NOME Salário
Aniversário
8 APARECIDO,ELIANE 17/03/1943 .
Ex.51:
Ex.52:
Ex.54:
TITLE;
OPTIONS NODATE PAGENO=1;
PROC MEANS DATA=ARQ.CADASTRO NOPRINT;
CLASS EMPRESA;
VAR IDADE SAL;
OUTPUT OUT=TESTE
MIN=ID_MINIMO SAL_MINIMO
MEAN=ID_MEDIA SAL_MEDIA
MAX=ID_MAXIMA SAL_MAXIMA;
RUN;
Cumulative Cumulative
SEXO Frequency Percent Frequency Percent
---------------------------------------------------------------------
F 9 50.0 9 50.0
M 9 50.0 18 100.0
Cumulative Cumulative
IDADE Frequency Percent Frequency Percent
----------------------------------------------------------------------
18 2 11.1 2 11.1
19 1 5.6 3 16.7
20 1 5.6 4 22.2
21 2 11.1 6 33.3
22 2 11.1 8 44.4
25 2 11.1 10 55.6
26 1 5.6 11 61.1
28 1 5.6 12 66.7
29 1 5.6 13 72.2
32 1 5.6 14 77.8
33 1 5.6 15 83.3
35 1 5.6 16 88.9
36 1 5.6 17 94.4
38 1 5.6 18 100.0
95
Ex.56:
SEXO EMPRESA
Frequency‚
Percent ‚
Row Pct ‚
Col Pct ‚ATLAS ‚MANTAS ‚ Total
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
F ‚ 7 ‚ 7 ‚ 14
‚ 28.00 ‚ 28.00 ‚ 56.00
‚ 50.00 ‚ 50.00 ‚
‚ 63.64 ‚ 50.00 ‚
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
M ‚ 4 ‚ 7 ‚ 11
‚ 16.00 ‚ 28.00 ‚ 44.00
‚ 36.36 ‚ 63.64 ‚
‚ 36.36 ‚ 50.00 ‚
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
Total 11 14 25
44.00 56.00 100.00
96
Ex.57:
Cumulative Cumulative
SEXO IDADE Frequency Percent Frequency Percent
--------------------------------------------------------------------------------
F 18 2 11.1 2 11.1
F 19 1 5.6 3 16.7
F 20 1 5.6 4 22.2
F 21 1 5.6 5 27.8
F 22 2 11.1 7 38.9
F 25 1 5.6 8 44.4
F 36 1 5.6 9 50.0
M 21 1 5.6 10 55.6
M 25 1 5.6 11 61.1
M 26 1 5.6 12 66.7
M 28 1 5.6 13 72.2
M 29 1 5.6 14 77.8
M 32 1 5.6 15 83.3
M 33 1 5.6 16 88.9
M 35 1 5.6 17 94.4
M 38 1 5.6 18 100.0
97
Ex.58:
TITLE;
OPTIONS NODATE PAGENO=1;
PROC FREQ DATA=ARQ.CADASTRO ;
TABLE SEXO*EMPRESA / OUT=TESTE
MISSING
NOCUM
NOPERCENT;
RUN;
SEXO empresa
Frequency‚
Row Pct ‚
Col Pct ‚ ‚ATLAS S.‚MALTA LT‚PARIS IN‚ Total
‚ ‚A. ‚DA ‚STITUTO ‚
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
F ‚ 74 ‚ 66 ‚ 106 ‚ 104 ‚ 350
‚ 21.14 ‚ 18.86 ‚ 30.29 ‚ 29.71 ‚
‚ 62.71 ‚ 63.46 ‚ 65.43 ‚ 62.65 ‚
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
M ‚ 44 ‚ 38 ‚ 56 ‚ 62 ‚ 200
‚ 22.00 ‚ 19.00 ‚ 28.00 ‚ 31.00 ‚
‚ 37.29 ‚ 36.54 ‚ 34.57 ‚ 37.35 ‚
ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ
Total 118 104 162 166 550
1 F 74 13.4545
2 F ATLAS S.A. 66 12.0000
3 F MALTA LTDA 106 19.2727
4 F PARIS INSTITUTO 104 18.9091
5 M 44 8.0000
98
8.3 - Procedimento TABULATE
página Especifica uma variável ou expressão que irá definir a regra de formação
das páginas da tabela;
linha Especifica uma variável ou expressão que irá definir a regra de formação
das linhas da tabela;
coluna Especifica uma variável ou expressão que irá definir a regra de formação
das colunas da tabela;
element os: variáveis, funções estatísticas (SUM, MEAN, N, PCTN, PCTSUM, etc), ALL
(totalizador).
99
Ex.59: LIBNAME ARQ "G:\KUSEL\SAS" ;
PROC TABULATE DATA=ARQ.DADOS ;
CLASS SEXO ;
VAR IDADE PESO;
TABLE SEXO , IDADE PESO ;
RUN ;
„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ IDADE ‚ PESO ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ Sum ‚ Sum ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚SEXO ‚ ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚ ‚
‚F ‚ 440.00‚ 939.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚M ‚ 344.00‚ 919.88‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒŒ
SEXO M
„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ ALTURA ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ Mean ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚EMPRESA ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚
‚ATLAS ‚ 1.82‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚MANTAS ‚ 1.79‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚All ‚ 1.80‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒŒ
101
Ex.63: LIBNAME ARQ "G:\KUSEL\SAS" ;
PROC TABULATE DATA=ARQ.DADOS ;
CLASS SEXO ALTURA ;
TABLE ALTURA , SEXO ALL;
RUN ;
The SAS System
„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ SEXO ‚ ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚
‚ ‚ F ‚ M ‚ All ‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ N ‚ N ‚ N ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ALTURA ‚ ‚ ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚ ‚ ‚
‚1.58 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.6 ‚ 2.00‚ .‚ 2.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.63 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.65 ‚ 1.00‚ 1.00‚ 2.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.67 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.68 ‚ 1.00‚ 2.00‚ 3.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.7 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.72 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.75 ‚ 2.00‚ 3.00‚ 5.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.78 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.8 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.81 ‚ 1.00‚ .‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.85 ‚ .‚ 1.00‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.86 ‚ .‚ 1.00‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.88 ‚ .‚ 1.00‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚1.9 ‚ .‚ 1.00‚ 1.00‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚2.05 ‚ .‚ 1.00‚ 1.00‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒŒ
102
Ex.64:
TITLE1 "Relatório com a Média de Salário";
TITLE2 "e a Distribuição Percentual dos Funcionários por Empresa";
OPTIONS LS=130;
„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒ…ƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ ‚ ‚ ‚ Média de ‚
‚ ‚ N ‚ % ‚ Salário ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚Sexo ‚Empresa ‚ ‚ ‚ ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰ ‚ ‚ ‚
‚F ‚ ‚ 74‚ 13,45‚ .‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ATLAS S.A. ‚ 66‚ 12,00‚ 3.707,33‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚MALTA LTDA ‚ 106‚ 19,27‚ 30.437,38‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚PARIS INSTITUTO‚ 104‚ 18,91‚ 9.935,85‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚M ‚ ‚ 44‚ 8,00‚ .‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚ATLAS S.A. ‚ 38‚ 6,91‚ 3.482,55‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚MALTA LTDA ‚ 56‚ 10,18‚ 31.465,62‚
‚ ‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ ‚PARIS INSTITUTO‚ 62‚ 11,27‚ 10.157,55‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚Total ‚ 550‚100,00‚ 16.299,47‚
Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‹ƒƒƒƒƒƒ‹ƒƒƒƒƒƒ‹ƒƒƒƒƒƒƒƒƒƒƒƒŒ
103
5º LABORATÓRIO
1 - Gere um relatório com a média, o valor máximo, o valor mínimo e o desvio padrão
das variáveis PESO e ALTURA, classificados por SEXO e com apresentação dos
resultados com duas casas decimais.
3 - Com o arquivo gerado no item anterior, crie um programa que emita um relatório
ordenado por EMPRESA.
7 - Gere um relatório com uma tabela de frequência, "listada", de SEXO versus IDADE,
e que não contenha as colunas de valores acumulativos e gere um arquivo de saída com os
resultados. Imprima o arquivo gerado com a PROC PRINT.
104
8 - Gere um relatório com duas tabelas de frequência de ESTADO CIVIL versus
FILHOS e SEXO versus EMPRESA na mesma PROC.
9 - Gere um relatório com uma tabela que apresente a média das variáveis IDADE e
PESO, classificadas pela variável SEXO.
10 - Gere um relatório com uma tabela que apresente a média e o somatório da variável
SALARIO, classificado por SEXO versus EMPRESA.
PROC FORMAT ;
VALUE <nome> [( opções )]
<intervalo> = "<descrição>" ;
VALUE Comando que define um formato diferente para os valores de uma variável
numérica ou caracter.
1 - Criar um programa que gere formatos especiais para os valores das variáveis: IDADE,
PESO, ALTURA, ESTADO CIVIL e SALARIO . Gere vários relatórios que utilize
esses formatos.
Criar rótulos para variável IDADE:
"1" = "SOLTEIRO"
"2" = "CASADO"
"3" = "SEPARADO"
10.1 - CONCATENAÇÃO
ARQ1 ARQ2
DATA ARQ3 ;
SET ARQ1 ARQ2 ;
RUN ;
ARQ3
ARQ1
ARQ2
110
Ex.66:
LIBNAME IN "A:\" ;
DATA IN.ARQ1 ;
INFILE “A:\ARQ1.TXT”
INPUT NOME $ 1-6 @8 SEXO $1. ;
RUN;
Arquivo: ARQ1.TXT
01 02 03 04 05 06 07 08
M A R C I O M
S A N D R A F
P A U L A F
C E L S O M
DATA IN.ARQ2 ;
INFILE “C:\ARQ2.TXT”
INPUT NOME $ 1-7 IDADE 2. ;
RUN ;
Arquivo: ARQ2.TXT
01 02 03 04 05 06 07 08 09
M A R C I O 2 5
C E L S O 2 2
P A U L A 1 8
S A N D R A 1 5
DATA IN.CONCAT ;
SET IN.ARQ1 IN.ARQ2 ;
PROC PRINT DATA=IN.CONCAT ;
RUN ;
SAS
ARQ1 ARQ2
ARQ3
ARQ1 ARQ2
112
Ex.67:
LIBNAME IN "C:\KUSEL\CUR_SAS" ;
PROC SORT DATA=IN.ARQ1 ; BY NOME ;
PROC SORT DATA=IN.ARQ2 ; BY NOME ;
DATA IN.ORD ;
MERGE IN.ARQ1 IN.ARQ2 ;
BY NOME ;
PROC PRINT DATA=IN.ORD ; RUN ;
SAS
1 - Monte um programa que gere um arquivo SAS (CONCAT) que será a concatenação
dos dados dos arquivos: PESSOAL e TRABALHO. Gere um relatorio com os dados
do arquivo CONCAT, para visualizar o resultado.
2 - Monte um programa que gere um arquivo SAS (INTER) que será a intercalação
ordenada dos dados dos arquivos: PESSOAL e TRABALHO por uma variável
comum CPF. Gere um relatório com os dados do arquivo INTER, para visualizar o
resultado.
3 - Monte um programa que gere um arquivo SAS (JUSTA) que será a justaposição
ordenada dos dados dos arquivos: PESSOAL e TRABALHO por uma variável
comum CIC. Gere um relatório com os dados do arquivo JUSTA, para visualizar o
resultado.
MANUAIS:
Curso de SAS/BÁSICO
Soft Consultoria