SAS может читать данные из различных источников, которые включают в себя множество форматов файлов. Форматы файлов, используемые в среде SAS, обсуждаются ниже.
- ASCII (текстовый) набор данных
- Данные с разделителями
- Данные Excel
- Иерархические данные
Чтение ASCII (текстового) набора данных
Это файлы, которые содержат данные в текстовом формате. Данные обычно разделяются пробелом, но также могут быть разные типы разделителей, с которыми может работать SAS. Давайте рассмотрим файл ASCII, содержащий данные о сотрудниках. Мы читаем этот файл, используя инструкцию Infile, доступную в SAS.
пример
В приведенном ниже примере мы читаем файл данных с именем emp_data.txt из локальной среды.
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;
Когда приведенный выше код выполняется, мы получаем следующий вывод.
Чтение данных с разделителями
Это файлы данных, в которых значения столбцов разделены символом-разделителем, таким как запятая, конвейер и т. Д. В этом случае мы используем опцию dlm в операторе infile .
пример
В приведенном ниже примере мы читаем файл данных с именем emp.csv из локальной среды.
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;
Когда приведенный выше код выполняется, мы получаем следующий вывод.
Чтение данных Excel
SAS может напрямую читать файл Excel с помощью средства импорта. Как видно из главы «Наборы данных SAS», он может обрабатывать самые разные типы файлов, включая MS Excel. Предполагая, что файл emp.xls доступен локально в среде SAS.
пример
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;
Приведенный выше код считывает данные из файла Excel и выдает тот же вывод, что и выше, для двух типов файлов.
Чтение Иерархических Файлов
В этих файлах данные представлены в иерархическом формате. Для данного наблюдения есть запись заголовка, ниже которой упоминается много подробных записей. Количество записей подробностей может варьироваться от одного наблюдения к другому. Ниже приведена иллюстрация иерархического файла.
В приведенном ниже файле перечислены данные каждого сотрудника в каждом отделе. Первая запись — это запись заголовка с указанием отдела, а следующая запись, несколько записей, начинающихся с DTLS, — запись сведений.
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
пример
Чтобы прочитать иерархический файл, мы используем приведенный ниже код, в котором мы идентифицируем запись заголовка с помощью предложения IF и используем цикл do для обработки записи сведений.
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;
Когда приведенный выше код выполняется, мы получаем следующий вывод.