Академический Документы
Профессиональный Документы
Культура Документы
Apostila de Treinamento:
SAS Programao I
- Introduo ao SAS: Data Step e Proc Step -
Reviso: 2015
CONTEDO
1 - HISTRICO
2 - CURIOSIDADES
3 - DEFINIO BSICA
4 - COMERCIALIZAO
4.1 - Mdulos SAS
4.2 - Solues Propostas
5 - CONCEITOS BSICOS
6 - ARQUIVOS SAS
7 - ESTRUTURA DOS ARQUIVOS SAS
8 - NOMECLATURA PARA ARQUIVOS E VARIVEIS
Ex.1: Nomeclatura
10 - EXECUO
10.1 - Modo Interativo (Ambiente WINDOWS)
10.2 - Modo No Interativo (Ambiente de COMANDOS)
10.3 - Programa SAS
1 LABORATRIO
12 - ESTRUTURA PROC STEP
12.1 - Introduo
12.1.1 - Comando VAR
12.1.2 - Comando BY
12.1.3 - Comando TITLE
12.1.4 - Comando FOOTNOTE
12.2 - Procedimento PRINT
Ex.11:Procedimento PRINT 1
Ex.12:Procedimento PRINT 2
12.3 - Procedimento SORT
Ex.13:Procedimento SORT
2 LABORATRIO
pag.06
pag.06
pag.07
pag.08
pag.08
pag.09
pag.10
pag.11
pag.12
pag.13
pag.13
pag.14
pag.14
pag.15
pag.15
pag.20
pag.21
pag.22
pag.22
pag.24
pag.24
pag.25
pag.25
pag.26
pag.26
pag.27
pag.27
pag.28
pag.29
pag.30
pag.31
pag.32
pag.33
pag.34
pag.35
pag.35
pag.36
pag.37
pag.38
pag.39
pag.39
pag.40
pag.41
pag.42
pag.42
pag.43
pag.44
pag.44
pag.45
pag.46
pag.47
pag.47
pag.48
pag.49
pag.50
2
3 LABORATRIO
15 - FUNES DO SAS
15.1 - Introduo
15.2 - Funes de Tratamento de Caractere
15.2.1 - Funo UPCASE e LOWCASE
15.2.2 - Funo SUBSTR
15.2.3 - Funo FIND
Ex.34: Funes Caracteres: FIND
Ex.35: Funes Caracteres: UPCASE, SUBSTR, FIND
15.3 - Funes Numricas
15.3.1 - Funo INT
15.3.2 - Funo ROUND
Ex.36: Funes Numricas
15.4 - Funes Estatsticas Descritivas
15.4.1 - Funo SUM
15.4.2 - Funo MEAN
Ex.37: Funes Estatsticas Descritivas
15.5 - Funes de Tratamento de Data
15.5.1 - Funo MDY
15.5.2 - Funes: DAY, MONTH, YEAR
15.5.3 - Funo TODAY e DATE
Ex.38: Funes de Tratamento de Data
4 LABORATRIO
16 - COMANDOS DE CONFIGURAO
16.1 - Comando OPTIONS
Ex.39: Comando OPTIONS 1
Ex.40: Comando OPTIONS 2
16.2 - Comando LABEL
16.3 - Comando FORMAT
Ex.41: Comando LABEL
pag.51
pag.51
pag.52
pag.53
pag.53
pag.54
pag.55
pag.56
pag.57
pag.57
pag.58
pag.59
pag.60
pag.60
pag.61
pag.61
pag.62
pag.63
pag.64
pag.64
pag.65
pag.65
pag.66
pag.67
pag.68
pag.68
pag.69
pag.69
pag.70
pag.71
pag.71
pag.72
pag.75
pag.75
pag.76
pag.76
pag.76
pag.77
pag.78
pag.79
pag.80
pag.80
pag.80
pag.81
pag.82
pag.82
pag.82
pag.83
pag.84
pag.84
pag.84
pag.84
pag.85
pag.86
pag.87
pag.87
pag.88
pag.88
pag.89
pag.90
pag.91
3
5 LABORATRIO
17 - PROCEDIMENTOS ESTATSTICOS BSICOS
17.1 - Procedimento MEANS
Ex.44: Procedimento MEANS (Padro)
Ex.45: Procedimento MEANS (Com Opes)
Ex.46: Procedimento MEANS (Comando CLASS)
Ex.47: Procedimento MEANS (Comando BY)
17.2 - Procedimento FREQ
Ex.48: Procedimento FREQ (Sem Cruzamento)
Ex.49: Procedimento FREQ (Com Cruzamento)
Ex.50: Procedimento FREQ (Cruzamento Listado)
Ex.51: Procedimento FREQ (Opes do Comando TABLE)
17.3 - Procedimento TABULATE
Ex.52: Procedimento TABULATE (Concatenao de Elementos)
Ex.53: Procedimento TABULATE (Cruzamento de Elementos)
Ex.54: Procedimento TABULATE (Trs Dimenses 1)
Ex.55: Procedimento TABULATE (Rotulao de Elementos: = )
Ex.56: Procedimento TABULATE (Formatao de Elementos: *f= )
Ex.57: Procedimento TABULATE (Elemento ALL e PCTN)
Ex.58: Procedimento TABULATE (Trs Dimenses 2)
6 LABORATRIO
19 - COMBINAO DE ARQUIVOS SAS
19.1 - Concatenao de Arquivos
Ex.60: Concatenao de Arquivos
19.2 - Combinao Ordenada de Arquivos (Match-Merging)
Ex.61: Combinao Ordenada de Arquivos
7 LABORATRIO
20 - DADOS MICROSOFT EXCEL
20.1 - Modo Assistente: Import Wizard ou Export Wizard
20.2 - Modo Programao: PROC IMPORT ou PROC EXPORT
Ex.62: Procedimento IMPORT
Ex.63: Procedimento EXPORT
20.3 - Principais Problemas
21 - REFERNCIAS
pag.91
pag.92
pag.93
pag.94
pag.95
pag.95
pag.96
pag.96
pag.97
pag.98
pag.99
pag.100
pag.101
pag.102
pag.102
pag.103
pag.105
pag.105
pag.106
pag.107
pag.108
pag.109
pag.110
pag.111
pag.111
pag.112
pag.113
pag.115
pag.115
pag.116
pag.117
pag.118
pag.119
pag.120
pag.120
pag.123
pag.123
pag.123
pag.124
pag.125
[ caracterstica ]
1 - HISTRICO
Dcada de 60;
North Caroline University;
Conjunto de sub-rotinas (FORTRAN, IBM/370);
Censo Agro-pecurio Norte-americano;
SAS Institute Inc. (1975);
2 - CURIOSIDADES
http://www.sas.com
http://v9doc.sas.com
SAS University - Edio acadmica disponvel para download, sem custos;
http://www.sas.com/en_us/software/university-edition.html
Mais de 75.000 Instalaes, em 139 paises;
93 das 100 maiores empresas do mundo utilizam SAS.
(Fortune 500 Global List - 2014);
Receita Bruta em 2014 - $3,09 bilhes;
2014 mais de 13.660 funcionrios;
SAS a maior empresa de software do mundo de capital privado;
SAS is the world's largest privately held software company
O SAS adaptou o software para alguns idiomas: Chins, Francs, Alemo,
Hebreu, Italiano, Japons, Russo, Espanhol, Polons, Hngaro, Sueco,
Coreano, etc.
6
3 - DEFINIO BSICA
O SAS um software integrado para anlise de dados, que consiste de
vrios produtos que permitem:
- Recuperao de dados;
- Gerenciamento de arquivos;
- Anlise estatstica;
- Acesso a Banco de Dados (ORACLE, DB2, TERADATA, etc);
- Gerao de grficos (gif, jpg, bmp, etc);
- Gerao de relatrios (html, pdf, ps, etc);
- Gerao de aplicativos;
- Solues de negcios (Anlise de Risco, Data Mining).
um software de grande portabilidade, podendo operar em diversos
ambientes computacionais:
- Mainframes IBM ( CMS, MVS, OS, OS/390, Z/OS );
- Micros PC ( DOS, Windows, OS/2 );
- UNIX ( Solaris, AIX, HP-UX, Irix, Linux ).
4 - COMERCIALIZAO
4.1 - Mdulos do SAS
SAS/BASE
SAS/STAT
Mdulo estatstico;
SAS/GRAPH
SAS/OR
SAS/QC
SAS/ETS
SAS/IML
SAS/ACCESS
ambientes
SAS/AF
SAS/FSP
Analytics
Business Analytics
SAS Cloud
Customer Intelligence
Performance Management
Risk Management
5 - CONCEITOS BSICOS
A funcionalidade do Sistema SAS foi construda em torno de quatro
ideias bsicas no tratamento de dados:
Acessar dados;
Administrar dados;
Analisar dados;
Apresentar dados.
JOB SAS
DATA STEP
PROC STEP
DATA SET
OBSERVAO
10
6 - ARQUIVOS SAS
DADO
BRUTO
DATA
STEP
DADO
SAS
11
SEXO
M
M
M
.
.
.
F
F
IDADE
ALTURA
12
25
30
.
.
.
28
22
1.70
1.65
1.80
.
.
.
1.68
1.75
Descritora
Dados
12
Ex.1: Nomeclatura
DATA EXEmPLO1 ;
INFILE "C:\curso\sas\CADASTRO.TXT";
INPUT primeiro_nome $ 1-8 Sexo $ 10 Idade 13-14 ALTURA 16-19 ;
RUN;
13
Ex.2: Sintaxe
DATA EXEMPLO1 ;
INFILE " C:\curso\sas\CADASTRO.TXT" ;
INPUT NOME $ 1-8 SEXO $ 10
IDADE $ 13-14 ALTURA 16-19 ;
RUN;
PROC PRINT DATA=EXEMPLO1 ;
RUN;
PROC FREQ DATA=EXEMPLO1 ; TABLES IDADE*ALTURA ; RUN ;
14
10 - EXECUO
Um programa SAS pode ser executado de trs maneiras diferentes:
- Modo interativo (Ambiente Windows);
- Modo no interativo;
- Modo batch.
10.1 - Modo Interativo (Ambiente WINDOWS)
Localize o cone do SAS na console windows ou, ative o ambiente
SAS, seguindo o roteiro abaixo:
Iniciar Programas SAS 64bits SAS 9.3_64bits (English)
15
16
17
18
CONFIGURAO DE TECLADO
Tools Options Keys
19
<programa>.lst
<programa>.log
20
2 Execuo:
Comandos de Execuo
DO
primeiro registro
AT
ltimo registro
22
Fluxo de Execuo
Inicio do
DATA Step
Abrir
arquivo
para gravar
Abrir
arquivo
para leitura
Ler novo
registro
processa
registro
Salvar
registro no
arquivo para
gravaao
NAO
Ultimo
registro
SIM
Fim do
DATA Step
23
diretrio
OBS: O SAS define uma biblioteca, temporria, de nome work, que ser utilizada
automaticamente se no for especificada a primeira parte do nome do arquivo.
" C:\curso\sas\cadastro.sas7bdat" ;
DATA endereco ;
DATA
ARQ1
arq2
ARQ3 ;
DATA _NULL_ ;
25
.
.
.
.
.
.
LRECL=
Tamanho do registro;
MISSOVER Previne o SAS de l um novo registro
para completar os dados de uma
varivel;
DATA EXEMPLO ;
INFILE 'C:\TESTE\DADOS.TXT' lrecl=450 MISSOVER ;
.
.
.
.
.
.
.
.
.
27
- INPUT COLUNADO
- INPUT FORMATADO
28
[.decimal] . . . ;
varivel
incio
fim
.decimal
29
10
11
12
13
14
15
16
17
18
19
20
DATA FICHA ;
INFILE "C:\curso\sas\CADASTRO2.DAT";
input nome $ 1-8 sexo $ 9 idade 10-12 altura 13-16 .2 peso 17-20 ;
RUN;
proc print;run;
The SAS System
Obs
NOME
1
2
3
4
CARLOS
CARLA
SILVIA
MARCIO
SEXO
M
F
f
m
IDADE
18
26
21
32
PESO
1.70
1.78
1.65
1.82
68.0
72.0
60.5
.
DATA FICHA2 ;
INFILE "C:\curso\sas\CADASTRO2.dat";
INPUT ALTURA 13-16 .2 IDADE 10-12 NOME $ 1-8
PESO $ 17-20 SEXO $ 9 ;
RUN;
proc print;run;
ALTURA
1
2
3
4
1.70
1.78
1.65
1.82
IDADE
18
26
21
32
NOME
PESO
SEXO
CARLOS
CARLA
SILVIA
MARCIO
68.0
72.0
60.5
85,4
M
F
f
m
30
w.
w.d
informatw.d
31
L dados no formato:
01JAN1960
DDMMYY10.
L dados no formato:
01/01/1960
"01JAN1960"d
32
10
11
12
13
14
15
16
17
18
19
20
DATA FICHA ;
INFILE "C:\curso\sas\CADASTRO2.dat";
INPUT NOME $ 8. SEXO $ 1. IDADE 3. ALTURA 4.2 PESO 4. ;
RUN;
proc print;run;
NOME
1
2
3
4
CARLOS
CARLA
SILVIA
MARCIO
SEXO
M
F
f
m
IDADE
18
26
21
32
PESO
1.70
1.78
1.65
1.82
68.0
72.0
60.5
.
DATA FICHA2 ;
INFILE "C:\curso\sas\CADASTRO2.dat";
INPUT NOME $ 8. SEXO $ 1. IDADE 3.
ALTURA 4.2 PESO commax4.1 ;
RUN;
proc print;run;
NOME
1
2
3
4
CARLOS
CARLA
SILVIA
MARCIO
SEXO
M
F
f
m
IDADE
18
26
21
32
PESO
1.70
1.78
1.65
1.82
68.0
72.0
60.5
85.4
10
33
10 11
12 13
14 15
16
17 18
19 20
21
22 23
24 25
26 27
28
29 30
31 32
33
34
DATA exemplo9a ;
INFILE "numeros2.prn";
INPUT cpf commax14. aniversario ddmmyy10. salario commax7.2
aumento percent3. ;
RUN;
PROC PRINT ; RUN ;
Datas armazenadas em nmero
de dias desde 01/01/1960.
The SAS System
Obs
cpf
aniversario
salario
aumento
1
2
3
23456755510
33349910014
98633311222
957
8364
9287
6683.58
8845.45
5632.55
0.10
0.15
0.12
17
34
@n
11
12
F
A
O
10
13
14
15
16
17
18
19
20
DATA FICHA2 ;
INFILE "C:\curso\sas\CADASTRO2.dat";
INPUT @14 ALTURA 3.2 @11 IDADE 2. @1 NOME $ 8.
@17 PESO commax4.1 @9 SEXO $ 1. ;
RUN;
proc print;run;
ALTURA
1
2
3
4
1.70
1.78
1.65
1.82
IDADE
18
26
21
32
NOME
PESO
SEXO
CARLOS
CARLA
SILVIA
MARCIO
68.0
72.0
60.5
85.4
M
F
f
m
35
PESO 17-20
NOME $ 1-8
IDADE 11-12
SEXO $ 9 ;
NOME $ 1-8
36
37
1 LABORATRIO
Montar um programa SAS que leia um arquivo de dados externo ( no um arquivo
SAS ) e gere um arquivo no formato SAS (Data Set), permanente.
Passos do programa:
1-Criar uma biblioteca SAS indicando a pasta c:\curso\sas para armazenar os arquivos SAS de maneira
permanente. Utilize o comando: LIBNAME ;
2-Inicie um DATA Step e abra um arquivo SAS de nome CADASTRO, para gravao dos dados,
utilizando a biblioteca criada no passo anterior. Utilize o comando DATA ;
3-Abra o arquivo de dados externo de nome CADASTRO.DAT que est na pasta c:\curso\sas. O tamanho
do registro de dados de 130 bytes. Utilize o comando INFILE ;
4-Leia os dados deste arquivo, sabendo-se que o contedo do arquivo est dividido em diversos campos de
acordo com a descrio abaixo. Utilize o comando INPUT, colunado ou formatado ou, ambos ;
Nome do
Campo
NOME
Tipo do
Campo
Caractere
Tamanho do
Campo
30
SEXO
Caractere
31
IDADE
Numrico
32
PESO
Numrico
34
ALTURA
Numrico
40
ANIVERSARIO
Numrico
10
44
ESTADO CIVIL
Caractere
54
FILHOS
Numrico
55
RG
Caractere
15
57
CPF
Caractere
11
72
EMPRESA
Caractere
15
83
FUNCAO
Caractere
12
98
ADMISSAO
Numrico
110
SALARIO
Numrico
12
119
Decimais
Posio
Inicial
1
Detalhe
5-Continuando o comando INPUT, leia novamente parte do campo EMPRESA, na posio 89, defina uma
nova varivel, TIPO DE EMPRESA, com 9 caracteres. Utilize o posicionamento de coluna para ler o
campo;
6-Gere um relatrio com os resultados da leitura do arquivo de dados, com os comandos abaixo:
PROC PRINT;RUN;
OBS: Salve os seus programas! Faa-o sempre, no diretrio c:\curso\sas
38
RUN
rotina
opes
comando
Comandos de
procedimento.
detalhamento
na
execuo
do
39
lista de variveis
40
12.1.2 - Comando BY
- Tipo: Comando de declarao;
- Uso: Data Step e Proc Step;
- Especifica uma lista de variveis que permitiro o processamento de
grupos, determinados pelos valores das variveis.
BY data step
- Sempre utilizado associado aos comandos: SET, MERGE,
MODIFY e UPDATE, para controlar a leitura dos dados por
agrupamento de valores.
BY [descending] <varivel1> [descending] <varivel2> ... ;
BY proc step
- Utilizado para permitir a anlise dos dados por grupos, e
gerar relatrios com os dados em ordem ascendente ou
descendente.
BY [descending] <varivel1> [descending] <varivel2> ... ;
- Exemplo de variveis que permitem o processamento por grupo:
SEXO, EMPRESA, ESTADO, IDADE.
42
DATA=
DOUBLE
Espacejamento duplo;
NOOBS
LABEL
BLANKLINE= n
VAR
BY
SUM
43
Ex.11:Procedimento PRINT 1
libname tre "c:\curso\sas";
title "Relatrio de Funcionrios" ;
PROC PRINT DATA=tre.exemplo1 noobs ;
var NOME FUNCAO ;
RUN ;
Relatrio de Funcionrios
nome
funcao
PAULO MOUA
MARIA MOUA
PAULO GUEDES
CARLA CERTO
CARLA APARECIDO
ROSANE YATAKA
CARLA MARQUES
CARLA MILIA
MARCELO SUNAY
MARCO MOUA
MADALENA MOUA
MONICA MOUA
ELIANE MOUA
JOAO MOUA
ANALISTA
GERENTE
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
ANALISTA
ANALISTA
ANALISTA
ANALISTA
GERENTE
68
funcao
PAULO MOUA
MARIA MOUA
PAULO GUEDES
CARLA CERTO
CARLA APARECIDO
ROSANE YATAKA
CARLA MARQUES
CARLA MILIA
MARCELO SUNAY
MARCO MOUA
MADALENA MOUA
MONICA MOUA
ELIANE MOUA
JOAO MOUA
MIRIAM MOUA
ANALISTA
GERENTE
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
PROGRAMADOR
ANALISTA
ANALISTA
ANALISTA
ANALISTA
GERENTE
GERENTE
69
salario
9548.36
19303.66
3828.77
3972.30
1557.69
3080.18
3233.49
1698.51
1530.04
9988.53
14821.37
12568.82
13694.19
20611.56
13075.91
=========
132513.38
FONTE: RH
44
DATA=
OUT=
duplicadas;
DUPOUT= Nome para arquivo que ir armazenar os registros
duplicados;
SORTSIZE= Especifica o limite para o uso de memria.
Inicialmente em 256MBytes;
BY ou KEY
45
salario
9988.53
5047.05
5418.33
14821.37
7221.58
12568.82
-------55065.68
salario
20611.56
17414.14
17260.69
13075.91
-------68362.30
salario
3828.77
5098.46
3101.32
3972.30
3045.33
1557.69
3080.18
3024.76
--------26708.81
=========
150136.79
46
DATA LOG1 ;
INFILE "C:\curso\sas\DADOS.TXT" ;
INPUT NOME $1-8 SEXO $10 FUNCAO $12-23 SALARIO 25-31 ;
RUN;
92
93
94
NOTE: There were 9 observations read from the data set WORK.LOG1.
NOTE: PROCEDURE PRINT used (Total process time):
real time
0.01 seconds
cpu time
0.00 seconds
47
126
RUN;
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.LOG2 may be incomplete. When this step was stopped there were 0
observations and 3 variables.
WARNING: Data set WORK.LOG2 was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
real time
0.00 seconds
cpu time
0.00 seconds
*** Faltou finalizar com ; O comando
PROC PRINT. O erro ocorre no prximo
comando, neste caso, o comando VAR foi
tratado como uma opo do comando PROC
PRINT; como essa opo no existe,
ocorre o erro.
127
128
129
RUN;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE PRINT used (Total process time):
real time
0.00 seconds
cpu time
0.00 seconds
48
DATA LOG3 ;
INFILE "C:\curso\sas\DADOS.TXT" ;
INPUT NOME $1-8 SEXO $10 FUNCAO $12-23 SALARIO $25-33 ;
RUN;
Este
NOTE,
indica
que
o
SAS
precisou ler um novo registro para
completar a leitura de dados de
uma varivel. Indica a necessidade
de
usar
a
opo
MISSOVER
no
comando INFILE.
No
existe
a
44
PROC PRINT DATA=LOG3 NOOBS ;
varivel
CARGO
no
45
VAR NOME CARGO ;
arquivo.
ERROR: Variable CARGO not found.
46
SUM SALARIO ;
ERROR: Variable SALARIO in list does not match type prescribed for this list.
47
RUN;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE PRINT used (Total process time):
real time
0.04 seconds
A varivel SALARIO foi
originalmente criada no
cpu time
0.01 seconds
comando
INPUT
como
sendo
do
tipo
caractere.
O
comando
SUM da PROC PRINT exige
que a varivel seja do
tipo numrica.
49
2 LABORATRIO
Manipular os procedimentos de impresso e ordenao.
Em todos os programas, utilize o arquivo SAS gerado no 1 laboratrio.
1 Monte um programa SAS que gere um relatrio:
- com as variveis: NOME, EMPRESA, FUNCAO e SALARIO;
- com opes para: espacejamento DUPLO e para no aparecer a coluna com o nmero de registros (OBS);
(Utilize o procedimento PRINT )
2 Monte um programa SAS que ordene os dados e gere um relatrio:
- crie, primeiro, um novo arquivo SAS ordenado por EMPRESA;
- um relatrio com todos os dados, agrupados por EMPRESA;
(Utilize os procedimentos SORT e PRINT)
3 Utilizando o arquivo ordenado do item anterior, monte um programa SAS:
- gere um relatrio agrupado por EMPRESA;
- com as variveis: NOME, FUNCAO e SALARIO;
- que possua um somatrio da varivel SALARIO;
- com uma linha em branco a cada 3 linhas de dados;
- com o ttulo "Relatrio de Salrios por Empresa";
- coloque o rodap "FONTE: Fundao Getlio Vargas";
(Utilize o procedimento PRINT)
4 Monte um programa SAS que gere um relatrio:
- com as variveis: NOME, FUNCAO e SALARIO;
- em ordem ascendente por EMPRESA e descendente por SALARIO.
(Utilize os procedimentos SORT e PRINT)
5 Monte um programa SAS que gere um relatrio:
- esteja ordenado por EMPRESA, mas sem agrupamento;
- com as variveis: NOME, EMPRESA e SALARIO;
- tenha espacejamento DUPLO;
- sem ttulo e sem rodap;
- com o somatrio da varivel SALARIO;
(Utilize o procedimento PRINT)
6 Monte um programa SAS que gere um relatrio com apenas os funcionrios que mais ganham por funo, de cada empresa.
A - Primeiro passo:
- Execute um PROC SORT, por EMPRESA, FUNCAO e ordem descendente de SALARIO;
- Verifique os resultados com a PROC PRINT, com as variveis: NOME, EMPRESA, FUNCAO, SALARIO;
B - Segundo passo:
- Execute um PROC SORT, mas gerando um NOVO ARQUIVO temporrio, por EMPRESA e FUNCAO;
- Elimine as duplicatas de EMPRESA e FUNCAO, desse novo arquivo, atravs de um opo do PROC SORT;
- Verifique os resultados com a PROC PRINT, com as variveis: NOME, EMPRESA, FUNCAO, SALARIO;
- Verifique se os resultados esto de acordo com o que foi solicitado no enunciado do exerccio.
50
Move valor;
Adio;
Subtrao;
Multiplicao;
Diviso;
Potenciao;
Mudana de sinal;
- Constantes :
N=0 ;
Constante numrica;
SEXO="F" ;
Constante caractere;
- Concatenao de caracteres : ||
A=PAULO || ANTUNES;
B=PAULO || || ANTUNES;
A=PAULOANTUNES
B=PAULO ANTUNES
( )
funo
**
*/
+-
Maior prioridade
Menor prioridade
A=X+Y+Z ;
A=X+Y*Z ;
A=X/(Y/Z) ;
S=SQRT(X) ;
A=INT(X) ;
Z=ABS(SQRT(X)-2) ;
- Funes:
51
02
4
5
6
7
03
04
5
6
8
Arquivo: NUMEROS.TXT
05
06
07
08
6
5
0
2
8
0
4
5
0
09
1
1
2
1
10
0
1
4
5
11
5
4
5
0
12
0
0
0
0
ANO
RECEITA
DESPESAS
LUCRO
DOLLAR
1994
1995
1996
1997
5650
6280
8450
.
=======
20380
1050
1140
2450
1500
========
6140
4600
5140
6000
.
=====
15740
4693.88
5244.90
6122.45
.
========
16061.22
-----------------------
RECEITA
N
DESPESAS
N
VAL_DOL
N
LUCRO
N
DOLLAR
N
PDV
ARQ.LUCROS
52
RECEITA
DESPESAS
LUCRO
DOLLAR
TOTAL
5650
6280
8450
.
=======
20380
1050
1140
2450
1500
========
6140
4600
5140
6000
.
=====
15740
4693.88
5244.90
6122.45
.
========
16061.22
4600
9740
15740
.
53
<expresso>
[THEN] <comando> ;
[ELSE] <comando> ;
>
<
=
<=
>=
~=
maior que
menor que
igual a
menor ou igual a
maior ou igual a
no igual (diferente)
no menor
no maior
est no conjunto
Operadores Lgicos
AND & e, ambos
OR
| ou, um ou outro
NOT ~ no, negao
54
DATA DAD.DADOS86 ;
INFILE "A:\DADOS\CADASTRO.TXT" LRECL=50 MISSOVER ;
INPUT NOME $8. @21 EMP $15. @37 ANO 4. ;
IF ANO=1986 ;
RUN;
PROC PRINT;RUN;
NOTE: There were 8 observations read from the data set DAD.DADOS86.
NOTE: PROCEDURE PRINT used (Total process time):
real time
0.03 seconds
cpu time
0.00 seconds
NOME
1
2
3
4
5
6
7
8
JOAO
LUIS
LICIA
MIRIAM
MARIA
RENATO
MARCIO
ROSANE
EMP
MALTA
ATLAS
ATLAS
MALTA
PARIS
MALTA
ATLAS
MALTA
ANO
LTDA
S.A.
S.A.
LTDA
INSTITUTO
LTDA
S.A.
LTDA
1986
1986
1986
1986
1986
1986
1986
1986
55
DATA
01
02
03
04
05
06
07
09
10
11
08
NOTA ;
INFILE "C:\curso\sas\NOTAS.TXT" ;
INPUT NOME $ 1-8 NOTA 9-11;
IF NOTA LT 3
THEN CONCEITO="E"
IF 3 <= NOTA < 5 THEN CONCEITO="D"
IF 5 LE NOTA LT 7 THEN CONCEITO="C"
IF 7 LE NOTA LT 9 THEN CONCEITO="B"
ELSE CONCEITO="A"
;
;
;
;
;
RUN;
PROC PRINT NOOBS ;
RUN;
The SAS System
NOME
NOTA
VIVIANE
LIDIA
PAULO
CLAUDIO
LUIZ
CONCEITO
2.5
9.5
6.8
6.8
4.9
A
A
A
A
A
NOTA ;
INFILE "C:\curso\sas\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;
PROC PRINT NOOBS ;
RUN;
The SAS System
NOME
VIVIANE
LIDIA
PAULO
CLAUDIO
LUIZ
NOTA
2.5
9.5
6.8
6.8
4.9
CONCEITO
E
A
C
C
D
56
Arquivo: CLASSE.TXT
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
CLASSE
PAULA
FLAVIA
MARCOS
LUIS
100
300
200
300
57
WHERE <expresso> ;
expresso
entre um e outro
contm
58
Obs
nome
salario
1
2
3
4
5
6
7
8
9
10
11
12
MOUA,PAULO
MOUA,MARCO
SONTAS,MARCO
MEREDITE,JOAO
MARUEL,MARCO
ANJOA,MONICA
LUILA,CARLA
MEREDITE,LUIS
MOUA,LIGIA
MOUA,TANIA
MOUA,CARLA
MOUA,LAURA
9548.36
9988.53
5098.46
5023.91
5157.09
5066.22
5178.65
5123.16
5047.05
5418.33
7221.58
7402.21
19
nome
17
21
40
44
197
213
278
283
376
383
399
411
423
440
450
453
463
468
498
502
505
508
532
YATAKA,SILVANA
SILVA,MADALENA
SILVA,CECILIA
SILVA,MARCO
SILVA,TANIA
SILVA,CARLA
SILVA,MARIA
SILVA,LICIA
SILVA,ROSANE
SILVA,MARCIO
SILVA,LAURA
SILVA,JOAO
SILVA,EDUARDO
SILVA,MONICA
SILVA,RENATO
SILVA,LIGIA
SILVA,MARCELO
SILVA,LUIS
SILVA,MIRIAM
SILVA,FRANCISCA
SILVA,FLAVIA
SILVA,ELIANE
SILVA,PAULO
29
59
DEP_NO
COM
SALARIO
CARLOS
ELIANE
ALVARO
FATIMA
201
101
101
201
1500
.
.
500
1500
1800
3800
1500
30
SAL
3000
1800
3800
2000
60
DEP_NO
COM
SALARIO
CARLOS
ELIANE
ALVARO
FATIMA
201
101
101
201
1500
.
.
500
1500
1800
3800
1500
31
SAL
3000
1800
3800
2000
61
ndice
incio
fim
passo
expresso
62
DO
DO
DO
DO
I = 1 TO 10
WHILE
DO
I = 2 TO 20
DO
I = 10 TO 0
;END;
data teste;
set arq.cadastro;
where salario between 2000 and 2100;
novosal=salario;
do i=1 to 10 while (novosal<2200);
novosal=novosal*1.05;
end;
run;
proc print data=teste;
var nome salario novosal i;
run;
nome
salario
novosal
SUNAY,FRANCISCA
MENDES,ELIANE
GUEDES,CARLA
LONAS,FLAVIA
HORTA,MONICA
MENDES,CARLA
APARECIDO,PAULO
BENTES,MARCO
BENTES,JOAO
YATAKA,PAULO
2070.60
2071.18
2076.92
2020.77
2098.94
2095.91
2037.42
2025.92
2026.52
2056.53
2282.84
2283.48
2289.80
2227.90
2203.89
2200.71
2246.26
2233.58
2234.24
2267.32
3
3
3
3
2
2
3
3
3
3
63
55
64
DO UNTIL <(expresso)> ;
...
END;<== ( Validao no fim )
expresso
no loop.
PROC PRINT;RUN;
The SAS System
Obs
55
65
66
DATA SUBARQ1 ;
SET DADOS ;
DROP PESO ALTURA ECIVIL ;
RUN;
proc contents short;run;
14:33 Monday, February 2, 2015
DATA SUBARQ2 ;
SET DADOS ;
KEEP NOME RG CPF ;
RUN;
proc contents short;run;
14:33 Monday, February 2, 2015
67
02
03
04
05
3
2
07
08
09
06
0
3
UNIDADE
CUSTO
CUSTOUNI
17
31
51
10
5
1
525
100
5
52.5
20.0
5.0
69
arquivo
70
02
03
04
05
06
07
08
09
10
11
12
15
16
17
18
13
14
NOME
PAULO
PAULO
MARIA
MARIA
CLAUDIA
CLAUDIA
NIVEL
10
10
10
10
10
10
SALARIO
1000
1000
800
800
750
750
12
SAL
1100
2200
920
1840
900
1800
71
3 LABORATRIO
Utilizao dos comandos de programao em DATA Step
Em todos os programas, utilize o arquivo SAS, gerado no 1 laboratrio:
1 - Monte um programa que crie um novo arquivo SAS, somente com os dados das pessoas do sexo
feminino e casadas. Gere um relatrio com os dados desse arquivo. A varivel que representa o ESTADO
CIVIL, est codificada por nmeros, que representam:
1 = solteiro
2 = casado
3 = separado.
- Analisando a varivel FILHOS, crie uma nova varivel, DEP e altere a varivel SALARIO :
Se possui filhos:
Se no possui filhos:
OBS: Utilize o comando de atribuio (=) para criar e alterar as variveis. Utilize o comando IFTHEN/ELSE, para se distinguir se possui ou no filhos, e o comando DO/END para permitir a
execuo de mais de um comando. Preste ateno aos resultados; verifique se est tudo correto.
72
- Aumente o valor do salrio dessas pessoas em 10%, em at 12 vezes (relativos a 12 meses), ou,
at o salrio atingir um valor superior a R$ 5.000,00.
Para aumentar o valor do salrio, utilize a equao: SALARIO=SALARIO*1.1
4 - Monte um programa que crie trs novos arquivos SAS, com os nomes: SA, LTDA e INSTITUTO :
- Selecione os dados, de maneira que, cada arquivo s possua os dados referentes a cada TIPO DE
EMPRESA.
OBS: Utilize o comando DATA, para criar os arquivos. Utilize o comando IF/THEN/ELSE, para
selecionar e eliminar os dados. Utilize o comando OUTPUT para direcionar a gravao dos
registros para os arquivos definidos no comando DATA.
73
5 - Monte um programa com um nico DATA Step que crie sete novos arquivos SAS, permanentes,
(PESSOAL , TRABALHO , FAMILIA, SOLTEIRO, CHEFE, SUB e DESEMPREGADOS) no
diretrio c:\curso\sas ;
- Cada arquivo dever conter os seguintes dados:
PESSOAL
TRABALHO
FAMILIA
SOLTEIRO
CHEFE
SUB
74
15 - FUNES DO SAS
15.1 - Introduo
- Toda funo representa a execuo de uma determinada rotina que ir retornar
um determinado valor.
- Toda funo SAS recursiva. Funo pode ser executada dentro de outra
funo, como parmetro da funo;
- As funes no SAS, normalmente, fazem parte de um comando de atribuio,
durante a criao ou alterao de uma varivel no DATA Step, mas tambm
podem ser utilizadas para formar uma expresso lgica, em um comando IF ou
WHERE.
funo
arg
OF
Tipos de funes:
- Funes de Tratamento de Caractere;
- Funes de Tratamento de Data e Hora;
- Funes Matemticas;
- Funes de Estatsticas Descritivas;
- Funes Trigonomtricas e Hiperblicas;
- Funes de Truncamento;
- Funes para Gerao de Nmeros Randmicos;
- Funes de Probabilidade;
- Funes Financeiras;
- Funes de Macro;
75
<varivel>=UPCASE (arg) ;
<varivel>=LOWCASE (arg) ;
varivel
arg
arg1
arg2
arg3
<varivel>=FIND(arg1, arg2[,arg3][,arg4]) ;
varivel
arg1
arg2
arg3
arg4
77
Obs
LOCAL
1
2
3
4
5
6
0
17
13
21
25
0
32
78
Arquivo: RG.TXT
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
RG_NUM
RG_SSP
584166
234
22397488
123456
SSP/DF
SSP/SP
SSP/RS
SSP/GO
44
79
arg
arg1
arg2
542,86 542,9
80
Arquivo: ARREDONDAMENTO.TXT
01
02
03
04
05
06
07
TRUNCA
INTEIRO
DEZENA
CENTENA
DECIMO
CENTES
MULT5
326.54
326
327
330
300
326.5
326.54
325
1977.09
1977
1977
1980
2000
1977.1
1977.09
1975
558.88
558
559
560
600
558.9
558.88
560
1588.29
1588
1588
1590
1600
1588.3
1588.29
1590
50
81
var1, . . . varn
OF
var1, . . . varn
OF
Arquivo: TEMP.DAT
1
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
T1
T2
T3
T4
T5
T6
TEMPSOMA
TEMPMED
TEMPSOMA2
TMPMED2
23.5
25.2
24.8
25.7
25.8
22.0
147
24.5000
147
24.5000
18.5
17.4
18.9
18.9
20.5
20.8
115
19.1667
115
19.1667
10.0
12.0
15.0
18.0
12.0
67
13.4000
52
83
mm
dd
data
10
Relatrio de Idades
Obs
DIA
MES
ANO
1
2
3
4
5
10
25
14
8
3
11
4
8
1
3
1976
2000
1934
1967
1955
ANIV
6158
14725
-9271
2564
-1765
DIA_SEMANA_
NASCIMENTO
4
3
3
1
5
60
DIAS_
ATE_2000
8452
-115
23881
12046
16375
85
4 LABORATRIO
Utilizar as funes do SAS.
1 - A partir dos dados do arquivo gerado no 1 laboratrio, monte um programa que crie um novo arquivo
SAS, temporrio, somente com as pessoas que possuem emprego e com o sobrenome Mendes ou
Silva. Defina novas variveis de acordo com as especificaes abaixo:
Varivel
PNOME
SNOME
CP
DV
SALINT
BONUS
Descrio
Primeiro nome
Sobrenome
Nmero principal do CPF
Dgitos verificadores
Salrio arredondado
Bnus sobre o salrio
SALNOVO
Novo salrio
T_EMP
Tempo de empresa
Observao
Parte da varivel NOME depois da vrgula.
Parte da varivel NOME antes da vrgula.
Os 9 primeiros dgitos da varivel CPF.
Os dois ltimos dgitos da varivel CPF.
Arredondar a varivel SALARIO para um valor inteiro.
3,5% do valor da varivel SALARIO arredondado, com
duas casas decimais.
Aumento de 7,58% sobre o valor da varivel SALARIO
arredondado, com duas casas decimais e mltiplo de 5.
O tempo do funcionrio na empresa, em anos, a partir da
varivel DATA ADMISSO.
Com quantos anos possuir quando se aposentar?
OBS: Aposentadoria dada ao se completar 45 anos de
trabalho.
Descrio
Salrio famlia
SALCOM
Salrio comissionado
SALTOTAL
SALMEDIO
Salrio total
Salrio Mdio
Observao
Para cada filho, acrescentar 5% do salrio, ao salrio:
SALARIO*(1+(FILHOS*0.05))
Cargo de chefia (GERENTE ou DIRETOR), acrescentar
20% do salrio, ao salrio:
SALARIO*1.2
Soma do SALRIO, SALFAM e SALCOM
Mdia do SALRIO, SALFAM e SALCOM
86
16 - COMANDOS DE CONFIGURAO
16.1 - Comando OPTIONS
- Tipo: Comando de declarao;
- Uso: Livre;
- Comando de definio que altera e configura opes de performance, de
impresso, de visualizao do ambiente SAS, de comunicao, etc.
OPTIONS opt1 opt2 . . . optn ;
Algumas opes:
COMPRESS=NO
OBS=MAX
FIRSTOBS=1
DATE/NODATE
NUMBER/NONUMBER
PAGENO=
LINESIZE=
PAGESIZE=
REPLACE/NOREPLACE
SORTSIZE=
MEMSIZE=
Ser gerado um arquivo compactado com apenas 100 registros; Ser gerado
um relatrio texto na janela OUTPUT com 66 linhas e 132 colunas por pgina, e sem a
impresso da data no cabealho.
88
DATA Step
PROC Step
LABEL
<varivel> = "rtulo" . . .
<varivel> = "rtulo" . . .
<varivel> = "rtulo" . . . ;
varivel
rtulo
89
DATA Step
PROC Step
varivel
DDMMYYw.
90
NOME
ALTURA
EM
POLEGADAS
PESO
EM
LIBRAS
PAULO
MARCIO
SONIA
59.0
57.3
51.3
99.5
83.0
50.5
Obs
Sobrenome,Nome
Data de
Aniversrio
1
2
3
4
5
6
7
8
9
10
MARKO,PAULO
MOUA,MARCO
SANTOS,PAULO
GUEDES,PAULO
SONTAS,MARCO
HORTA,PAULO
CERTO,CARLA
PISCO,ROSANE
MALA,ELIANE
APARECIDO,CARLA
18/10/1980
03/07/1969
01/11/1986
11/01/1977
18/07/1979
02/08/1976
12/11/1979
23/02/1977
02/02/1979
15/05/1985
Salrio
Bruto
.
9.988,53
.
3.828,77
5.098,46
3.101,32
3.972,30
3.045,33
.
1.557,69
91
file=
style=
opes:
Analise Contbil
Obs
Sobrenome,Nome
Data de
Aniversrio
Salrio
Bruto
MARKO,PAULO
18/10/1980
MOUA,MARCO
03/07/1969
9.988,53
SANTOS,PAULO
01/11/1986
GUEDES,PAULO
11/01/1977
3.828,77
SONTAS,MARCO
18/07/1979
5.098,46
HORTA,PAULO
02/08/1976
3.101,32
CERTO,CARLA
12/11/1979
3.972,30
PISCO,ROSANE
23/02/1977
3.045,33
MALA,ELIANE
02/02/1979
APARECIDO,CARLA
15/05/1985
1.557,69
10
93
5 LABORATRIO
Configurar a aparncia de relatrios
1 - Acrescente ao programa criado no 1 exerccio do laboratrio anterior, rtulos descritivos para todas as
variveis relacionadas abaixo, e formatos adequados para os valores numricos. Defina essas caractersticas
de maneira permanente. Gere um relatrio, sem ttulos, rodaps, datas e numerao de pgina, no formato
HTML.
Rtulos:
pnome
snome
salint
bonus
salnovo
t_emp
apos
aposanos
dv
cpf
salario
aniversario
admissao
Primeiro Nome
Sobrenome
Valor do Salrio (INTEIRO)
Bonus (3,5% do Salrio)
Novo Salrio (Aumento de 7,58%)
Tempo do Funcionrio na Empresa (Em anos)
Qual o ano da aposentadoria?
Quantos anos ter na aposentadoria?
Dgito Verificador do CPF
CPF
Salrio Original
Data de Aniversrio
Data de Admisso
Formatos:
aniversario, admissao
salario, salint, bonus, salnovo
2 - Acrescente ao programa criado no 2 exerccio do laboratrio anterior, rtulos descritivos para todas as
variveis relacionadas abaixo, e formatos adequados para os valores numricos. Defina essas caractersticas
de maneira temporria, apenas para o relatrio do exerccio. Gere um relatrio, sem ttulos, rodaps e
datas, no formato PDF, somente com as pessoas que possuam emprego.
Rtulos:
saltotal
salmedio
nome
salfam
salcom
filhos
salario
funo
Salrio Total
Salrio Mdio
Nome
Salrio Famlia
Salrio com Comisso
Nmero de Filhos
Salrio
Funo
OBS: Quebre os rtulos na posio que achar melhor, para o relatrio no ficar muito extenso na largura.
Formatos:
salario, salfam, salcom, saltotal, salmedio
DATA=
MAXDEC=
estatsticas:
CLASS
VAR
BY
95
idade
550
26.3618182
7.4751560
20.0000000
78.0000000
peso
550
79.3567273
12.6820018
41.9000000
111.5000000
altura
550
1.8381273
0.1027400
1.6000000
2.0600000
aniversario
550
7357.50
2737.25
-11481.00
9846.00
filhos
550
2.5200000
1.4531418
0
5.0000000
admissao
434
15682.62
1112.21
2345.00
16068.00
salario
434
3332.21
2693.34
1500.73
25377.28
idade
20.00
78.00
26.36
25.00
14499.00
550
peso
41.90
111.50
79.36
78.50
43646.20
550
altura
1.60
2.06
1.84
1.84
1010.97
550
salario
1500.73
25377.28
3332.21
3080.41
1446180.53
434
96
ATLAS S.A.
F
58
179480.78
3094.50
MALTA LTDA
PARIS INSTITUTO
39
117757.21
3019.42
101
377653.28
3739.14
73
293684.98
4023.08
112
337886.16
3016.84
M
51
139718.12
2739.57
97
179480.78
3094.50
117757.21
3019.42
377653.28
3739.14
293684.98
4023.08
337886.16
3016.84
139718.12
2739.57
98
opes1:
DATA=
NLEVELS
BY
LIST
MISSING
NOCUM
NOPERCENT
NOFREQ
99
sexo
2
idade
31
Cumulative
Cumulative
sexo
Frequency
Percent
Frequency
Percent
F
350
63.64
350
63.64
M
200
36.36
550
100.00
Cumulative
Cumulative
idade
Frequency
Percent
Frequency
Percent
20
39
7.09
39
7.09
21
53
9.64
92
16.73
22
41
7.45
133
24.18
23
49
8.91
182
33.09
24
47
8.55
229
41.64
25
51
9.27
280
50.91
26
45
8.18
325
59.09
27
62
11.27
387
70.36
28
53
9.64
440
80.00
29
44
8.00
484
88.00
30
44
8.00
528
96.00
35
1
0.18
529
96.18
36
1
0.18
530
96.36
37
1
0.18
531
96.55
38
1
0.18
532
96.73
41
1
0.18
533
96.91
45
2
0.36
535
97.27
49
1
0.18
536
97.45
50
1
0.18
537
97.64
54
1
0.18
538
97.82
57
1
0.18
539
98.00
58
1
0.18
540
98.18
61
1
0.18
541
98.36
67
2
0.36
543
98.73
68
1
0.18
544
98.91
69
1
0.18
545
99.09
71
1
0.18
546
99.27
73
1
0.18
547
99.45
74
1
0.18
548
99.64
77
1
0.18
549
99.82
78
1
0.18
550
100.00
100
empresa
Frequency
Percent
Row Pct
Col Pct ATLAS S.MALTA LTPARIS IN Total
A.
DA
STITUTO
58
101
112
271
13.36 23.27 25.81 62.44
21.40 37.27 41.33
59.79 58.05 68.71
39
73
51
163
Total
97
174
163
434
22.35
40.09
37.56
100.00
Frequency Missing = 116
101
F
ATLAS S.A.
58
13.36
58
13.36
F
MALTA LTDA
101
23.27
159
36.64
F
PARIS INSTITUTO
112
25.81
271
62.44
M
ATLAS S.A.
39
8.99
310
71.43
M
MALTA LTDA
73
16.82
383
88.25
M
PARIS INSTITUTO
51
11.75
434
100.00
Frequency Missing = 116
empresa
Frequency
Row Pct
Col Pct
ATLAS S.MALTA LTPARIS IN Total
A.
DA
STITUTO
F
79,00 58,00 101,00 112,00 350,00
22.57 16.57 28.86 32.00
68.10 59.79 58.05 68.71
M
37,00 39,00 73,00 51,00 200,00
18.50 19.50 36.50 25.50
31.90 40.21 41.95 31.29
Total
116,00
97,00
174,00
163,00
550,00
102
DATA=
FORMAT=
CLASS
VAR
BY
TABLE
opes2
OBS:
Regras de formao:
elemento*elemento cruzamento
elemento elemento concatenao
(elemento elemento) agrupamento
ATLAS S.A.
MALTA LTDA
PARIS INSTITUTO
Dimenso COLUNA
Dimenso LINHA
PARIS INSTITUTO
Mdia de
N
%
Salrio
Sexo
Funo
F
GERENTE
1 0,18
19.303,66
PROGRAMADOR
111 20,18
2.870,11
M
ANALISTA
1 0,18
9.548,36
PROGRAMADOR
50 9,09
2.603,40
Total
163 29,64
2.930,09
104
cruzando
com
as
variveis
de
TABELA 1
idade
peso
Mean
Mean
sexo
26.33
76.48
26.42
84.40
empresa
PARIS
S.A. LTDA
TO
sexo
77,67
77,44
75,42
83,87
84,24
83,77
105
sexo F
altura
Mean
empresa
ATLAS S.A.
1.83
MALTA LTDA
1.81
PARIS INSTITUTO
1.78
All
1.80
sexo M
altura
Mean
empresa
ATLAS S.A.
1.89
MALTA LTDA
1.91
PARIS INSTITUTO
1.90
All
1.90
106
PctN
sexo
e_civilfilhos
F
1
1
31.00
5.64
72.00
13.09
75.00
13.64
38.00
6.91
2
1
38.00
6.91
28.00
5.09
41.00
7.45
3
0
27.00
4.91
M
1
1
22.00
4.00
40.00
7.27
48.00
8.73
11.00
2.00
2
1
24.00
4.36
25.00
4.55
13.00
2.36
3
0
17.00
3.09
Total
550.00
100.00
107
,
=
100
N
PCTN="%"
SALARIO=""*(MEAN="Mdia de Salrio" MAX="Salrio Mximo")*f=commax12.2;
RUN ;
Permite formatar os dados de linhas e
colunas, especificamente, para um ou
mais elementos.
Relatrio com a Mdia de Salrio
e a Distribuio Percentual dos Funcionrios por Empresa
Mdia de Salrio
%
Salrio
Mximo
Sexo
Empresa
79.00
14.36
.
.
ATLAS S.A.
58.00
10.55
3.094,50
17.260,69
MALTA LTDA
101.00
18.36
3.739,14
20.336,22
PARIS
INSTITUTO
112.00
20.36
3.016,84
19.303,66
37.00
6.73
.
.
ATLAS S.A.
39.00
7.09
3.019,42
17.414,14
MALTA LTDA
73.00
13.27
4.023,08
25.377,28
PARIS
INSTITUTO
51.00
9.27
2.739,57
9.548,36
Total
550.00
100.00
3.332,21
25.377,28
numerador
Total Geral
denominador
PERGUNTA:
RESPOSTA:
1 - Ser necessrio acrescentar, regra do comando TABLE, mais um elemento ALL. Aonde???
2 - Ser necessrio alterar o denominador da estatstica PCTN. Como???
108
Utilizao
correta
dos
Sexo
% Sexo
Mdia de Salrio
Salrio Mximo
Empresa
79
14,36
22,57
ATLAS S.A.
58
10,55
16,57
3.094,50
17.260,69
MALTA LTDA
101
18,36
28,86
3.739,14
20.336,22
PARIS INSTITUTO
112
20,36
32,00
3.016,84
19.303,66
Subtotal
350
63,64
100,00
3.302,66
20.336,22
Empresa
37
6,73
18,50
ATLAS S.A.
39
7,09
19,50
3.019,42
17.414,14
MALTA LTDA
73
13,27
36,50
4.023,08
25.377,28
PARIS INSTITUTO
51
9,27
25,50
2.739,57
9.548,36
200
36,36
100,00
3.381,35
25.377,28
550
100,00
100,00
3.332,21
25.377,28
Subtotal
Total
109
Salrio
Mdia de
N
%
Salrio
Sexo
Funo
F
DESEMPREGADO
79 14,36
.
M
DESEMPREGADO
37 6,73
.
Total
116 21,09
.
ATLAS S.A.
Salrio
Mdia de
N
%
Salrio
Sexo
Funo
F
ANALISTA
4 0,73
6.272,29
GERENTE
1 0,18
17.260,69
PROGRAMADOR
53 9,64
2.587,38
M
GERENTE
2 0,36
14.121,42
PROGRAMADOR
37 6,73
2.419,31
Total
97 17,64
3.064,31
MALTA LTDA
Salrio
Mdia de
N
%
Salrio
Sexo
Funo
F
ANALISTA
3 0,55
13.694,79
GERENTE
2 0,36
16.706,07
PROGRAMADOR
96 17,45
3.157,88
M
ANALISTA
1 0,18
9.988,53
DIRETOR
1 0,18
25.377,28
GERENTE
2 0,36
20.534,46
PROGRAMADOR
69 12,55
3.148,55
Total
174 31,64
3.858,27
PARIS INSTITUTO
Salrio
Mdia de
N
%
Salrio
Sexo
Funo
F
GERENTE
1 0,18
19.303,66
PROGRAMADOR
111 20,18
2.870,11
M
ANALISTA
1 0,18
9.548,36
PROGRAMADOR
50 9,09
2.603,40
Total
163 29,64
2.930,09
110
18 - FORMATAO ESPECIAL
18.1 - Procedimento FORMAT
O procedimento FORMAT permite que o usurio crie os seus prprios formatos de leitura e
impresso, para variveis numricas e caracteres.
PROC FORMAT ;
VALUE <nome> [( opes )]
<intervalo> = "<descrio>" ;
VALUE
nome
111
VALUE ALT
"1"="SOLTEIRO"
"2"="CASADO"
"3"="SEPARADO"
OTHER="???"
;
LOW-<1.50="At 1,50"
1.50-<1.70="De 1,50 at 1,70"
1.70-HIGH="Mais de 1,70"
;
RUN;
PROC FREQ DATA=ARQ.CADASTRO
FORMAT E_CIVIL $EC.
ALTURA ALT. ;
TABLE E_CIVIL ALTURA;
RUN ;
SOLTEIRO
337
61.27
337
61.27
CASADO
169
30.73
506
92.00
SEPARADO
44
8.00
550
100.00
Cumulative
Cumulative
altura
Frequency
Percent
Frequency
Percent
At 1,50
6
1.09
6
1.09
De 1,50 at 1,70
38
6.91
44
8.00
Mais de 1,70
506
92.00
550
100.00
112
6 LABORATRIO
Utilizao dos procedimentos estatsticos bsicos.
Utilizando o arquivo SAS gerado no 1 LABORATRIO:
1 - Gere um relatrio com a mdia, o valor mximo, o valor mnimo e o desvio padro das variveis
PESO e ALTURA, classificados por SEXO e com apresentao dos resultados com duas casas decimais.
2 - Gere um relatrio apenas coma a mdia e somatrio de todas as variveis numricas ordenados por
EMPRESA.
3 - Gere um relatrio com as tabelas de frequncia de SEXO, IDADE, ESTADO CIVIL, FILHOS,
EMPRESA e FUNCAO.
4 - Gere um relatrio com uma tabela de frequncia de SEXO versus IDADE.
5 - Gere um relatrio com duas tabelas de frequncia de ESTADO CIVIL versus FILHOS e SEXO
versus EMPRESA na mesma PROC.
6 - Utilizando o procedimento TABULATE, crie uma tabela que apresente a mdia das variveis IDADE e
PESO, classificadas pela varivel SEXO.
- A varivel SEXO, dever formar as linhas;
- As variveis IDADE e PESO, devero formar as colunas;
- Dever ser utilizada a opo MEAN para formar as colunas;
7 - Utilizando o procedimento TABULATE, crie uma tabela que apresente a mdia e o somatrio da
varivel SALARIO, classificados por SEXO e EMPRESA.
- A expresso SEXO versus EMPRESA dever formar as linhas;
- A varivel SALARIO dever formar as colunas;
- Devero ser utilizadas as opes MEAN e SUM para formar as colunas
- Tamanho da pgina de 55 linhas por 80 colunas;
8 - Acrescente a tabela do relatrio anterior:
- Um totalizador na linha, para criar um total geral. Adicionar o elemento ALL;
- Um subtotal por EMPRESA. Adicionar mais um elemento ALL;
- Rotule todos os elementos: variveis, estatsticas e totalizadores;
- Formate os resultados numricos com pontos, vrgula e duas decimais;
- Ttulo: Apresentao do Salrio por Sexo e Empresa;
- Sem a data, e a paginao iniciando do 1;
- Gere a tabela no padro HTML e PDF.
113
9 - Criar um programa que gere formatos especiais para os valores das variveis: IDADE e SALARIO .
Criar rtulos para varivel IDADE:
15-25 = "At a 25 anos"
26-50 = "26 a 50 anos"
51-HIGH = "Mais de 50 anos"
Criar faixas para varivel SALARIO:
do menor at 2000, no incluso = "Iniciante"
de 2000 at 4000, no incluso = "Junior"
de 4000 at 7000, no incluso = "Senior"
de7000 at 10000, no incluso = "Gerente"
acima de 10000, no incluso = "Diretor"
missing=Desempregado;
10 Utilizando o procedimento TABULATE, crie uma tabela que mostre a classificao das pessoas com
relao a EMPRESA, IDADE e SALARIO. Utilize o formato especial definido no item anterior, para
IDADE e SALARIO.
114
ARQ1
ARQ2
DATA ARQ3;
SET ARQ1 ARQ2;
RUN;
ARQ3
ARQ1
ARQ2
115
ARQ1.TXT
01
02
03
04
05
06
M
S
P
C
A
A
A
E
R
N
U
L
C
D
L
S
I
R
A
O
O
A
07
08
09
10
11
12
13
14
15
16
17
18
8
2
4
8
1
3
5
5
8
2
6
8
1
3
3
5
8
2
2
4
1
3
1
3
8
2
7
4
1
3
8
3
8
2
9
2
1
3
5
1
0
0
5
1
DATA IN.ARQ2 ;
INFILE "C:\CURSO\SAS\ARQ2.TXT";
INPUT CPF $ 1-11 SALARIO COMMAX8.2 ;
RUN ;
ARQ2.TXT
01
02
03
04
05
06
07
08
09
10
11
8
2
4
8
1
3
5
5
8
2
6
8
1
3
3
5
8
2
2
4
1
3
1
3
8
2
7
4
1
3
8
3
8
2
9
2
1
3
5
1
0
0
5
1
12
13
1
1
14
15
16
17
18
19
20
8
0
6
1
7
5
4
6
6
6
3
7
5
7
2
8
,
,
,
,
5
4
1
8
5
0
0
9
DATA IN.CONCAT ;
SET IN.ARQ1 IN.ARQ2 ;
RUN;
PROC PRINT DATA=IN.CONCAT ;
RUN ;
NOME
CPF
SALARIO
1
2
3
4
5
6
7
8
MARCIO
SANDRA
PAULA
CELSO
81818181810
23232323230
45632178955
85854343211
81818181810
23232323230
45632178955
85854343211
.
.
.
.
8765.5
10567.4
6432.1
11678.8
116
ARQ1
ARQ2
ARQ3
ARQ1
ARQ2
117
RUN ;
NOME
CPF
SALARIO
1
2
3
4
SANDRA
PAULA
MARCIO
CELSO
23232323230
45632178955
81818181810
85854343211
10567.4
6432.1
8765.5
11678.8
118
7 LABORATRIO
Utilizao da combinao de arquivos SAS
1 - Monte um programa que gere um novo arquivo SAS (JUSTA) que ser a justaposio
ordenada dos dados dos arquivos: PESSOAL e TRABALHO por uma varivel em comum,
o CPF. Gere um relatrio com os dados do arquivo JUSTA para visualizar os resultados.
(Utilize os comandos DATA, MERGE e BY)
OBS: Os arquivos devem estar ordenados pela varivel comum.
119
Next >
120
Options...
O preenchimento automtico nessa janela. Se for necessrio, e existir mais de uma planilha no arquivo
xls, especificar a planilha e o intervalo de colunas para a importao. Importante! Assinalar que a
primeira linha da planilha possui o nome dos campos.
OK
Next >
Informar o nome do arquivo SAS que ir receber os dados importados do EXCEL; nome da biblioteca,
nome do arquivo.
Next >
121
O modo assistente pode criar um programa SAS, que exatamente a utilizao do procedimento IMPORT.
Muito til para futuras execues, bastando alterar o que for necessrio.
Informe um nome qualquer para armazenar o programa e assinale, se desejar, para sobrepor o
arquivo programa, caso j exista. O programa ser salvo na pasta do usurio do Windows, indicado
no rodap da janela SAS. Se desejar outro local, basta indic-lo junto com o nome do programa.
Finish
122
123
Software SAS
32bits
32bits
64bits
32bits
64bits
Software EXCEL
32bits
32bits
32bits
64bits
64bits
OK
OK
ERRO
ERRO
OK
Para corrigir o problema, pode-se modificar o padro/verso escolhido para importao/exportao ou,
acessar o programa EXCEL, carregar a planilha e salv-la com o padro/verso correto para o SAS.
124
21 - REFERNCIAS
SAS 9.4 Statements: Reference, Third Edition
SAS Institute Inc., 2014
Cary, NC, USA
Base SAS 9.4 Procedures Guide, Third Edition
SAS Institute Inc., 2014
Cary, NC, USA
SAS Guide to TABULATE Processing, Second Edition
SAS Institute Inc., 1990
Cary, NC, USA
ISBN 1-55544-416-4
Step-by-Step Programming with Base SAS Software
SAS Institute Inc., 2001
Cary, NC, USA
ISBN 978-1-58025-791-6
Curso de SAS/BSICO
Soft Consultoria
125