SAS - ler dados brutos
O SAS pode ler dados de várias fontes, incluindo muitos formatos de arquivo. Os formatos de arquivo usados no ambiente SAS são discutidos abaixo.
- Conjunto de dados ASCII (texto)
- Dados Delimitados
- Dados Excel
- Dados Hierárquicos
Leitura do conjunto de dados ASCII (texto)
Estes são os arquivos que contêm os dados em formato de texto. Os dados geralmente são delimitados por um espaço, mas também pode haver diferentes tipos de delimitadores que o SAS pode manipular. Vamos considerar um arquivo ASCII contendo os dados do funcionário. Lemos este arquivo usando oInfile declaração disponível no SAS.
Exemplo
No exemplo abaixo, lemos o arquivo de dados denominado emp_data.txt do ambiente local.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt';
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Lendo Dados Delimitados
Estes são os arquivos de dados nos quais os valores da coluna são separados por um caractere delimitador, como uma vírgula ou pipeline, etc. Neste caso, usamos o dlm opção no infile declaração.
Exemplo
No exemplo a seguir, lemos o arquivo de dados denominado emp.csv do ambiente local.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=",";
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Leitura de dados do Excel
O SAS pode ler diretamente um arquivo Excel usando o recurso de importação. Conforme visto no capítulo conjuntos de dados SAS, ele pode lidar com uma ampla variedade de tipos de arquivos, incluindo MS Excel. Supondo que o arquivo emp.xls esteja disponível localmente no ambiente SAS.
Exemplo
FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;
PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;
O código acima lê os dados do arquivo Excel e fornece a mesma saída dos dois tipos de arquivo acima.
Lendo Arquivos Hierárquicos
Nestes arquivos, os dados estão presentes em formato hierárquico. Para uma dada observação, há um registro de cabeçalho abaixo do qual muitos registros de detalhes são mencionados. O número de registros de detalhes pode variar de uma observação para outra. Abaixo está uma ilustração de um arquivo hierárquico.
No arquivo abaixo, estão listados os detalhes de cada funcionário de cada departamento. O primeiro registro é o registro de cabeçalho mencionando o departamento e o próximo registro alguns registros começando com DTLS são o registro de detalhes.
DEPT:IT
DTLS:1:Rick:623
DTLS:3:Mike:611
DTLS:6:Tusar:578
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452
Exemplo
Para ler o arquivo hierárquico, usamos o código abaixo, no qual identificamos o registro de cabeçalho com uma cláusula IF e usamos um loop do para processar o registro de detalhes.
data employees(drop = Type);
length Type $ 3 Department
empID $ 3 empName $ 10 Empsal 3 ;
retain Department;
infile
'/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
input Type $ @;
if Type = 'DEP' then
input Department $;
else do;
input empID empName $ Empsal ;
output;
end;
run;
PROC PRINT DATA = employees;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.