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.