SAS - Leer datos brutos

SAS puede leer datos de varias fuentes que incluyen muchos formatos de archivo. Los formatos de archivo utilizados en el entorno SAS se describen a continuación.

  • Conjunto de datos ASCII (texto)
  • Datos delimitados
  • Datos de Excel
  • Datos jerárquicos

Lectura del conjunto de datos ASCII (texto)

Estos son los archivos que contienen los datos en formato de texto. Los datos generalmente están delimitados por un espacio, pero también puede haber diferentes tipos de delimitadores que SAS puede manejar. Consideremos un archivo ASCII que contiene los datos de los empleados. Leemos este archivo usando elInfile declaración disponible en SAS.

Ejemplo

En el siguiente ejemplo, leemos el archivo de datos llamado emp_data.txt del entorno 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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.

Lectura de datos delimitados

Estos son los archivos de datos en los que los valores de las columnas están separados por un carácter delimitador como una coma o una canalización, etc. En este caso usamos el dlm opción en el infile declaración.

Ejemplo

En el siguiente ejemplo, leemos el archivo de datos llamado emp.csv del entorno 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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.

Leer datos de Excel

SAS puede leer directamente un archivo de Excel utilizando la función de importación. Como se vio en el capítulo Conjuntos de datos SAS, puede manejar una amplia variedad de tipos de archivos, incluido MS excel. Suponiendo que el archivo emp.xls esté disponible localmente en el entorno SAS.

Ejemplo

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;

El código anterior lee los datos del archivo de Excel y da el mismo resultado que los dos tipos de archivos anteriores.

Lectura de archivos jerárquicos

En estos archivos, los datos están presentes en formato jerárquico. Para una observación determinada, hay un registro de encabezado debajo del cual se mencionan muchos registros detallados. El número de registros de detalles puede variar de una observación a otra. A continuación se muestra una ilustración de un archivo jerárquico.

En el archivo siguiente se enumeran los detalles de cada empleado de cada departamento. El primer registro es el registro de encabezado que menciona el departamento y el siguiente registro, algunos registros que comienzan con DTLS, son el registro de detalles.

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

Ejemplo

Para leer el archivo jerárquico usamos el siguiente código en el que identificamos el registro de encabezado con una cláusula IF y usamos un bucle do para procesar el registro de detalles.

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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.