Программирование sas что это

Основы программирования на SAS Base. Урок 4. Создание наборов данных SAS

В предыдущей статье мы изучили, как читать внешние необработанные данные. А сегодня познакомимся с оператором SET, который считывает стандартные наборы данных SAS (SAS Data Set), научимся создавать срезы данных, настраивать постоянные атрибуты, а также изучим несколько полезных функций SAS. Я снова постараюсь изложить материал максимально простым языком, используя как можно больше примеров.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Допустим данные хранятся в формате EXCEL в директории C:\workshop\habrahabr. Импортируем электронную таблицу, создадим из нее срез, создадим новые вычисляемые столбцы, используя функции SAS, а затем разобьем данный набор данных на два.

Импорт электронной таблицы и задание фильтра

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Файл excel хранится в указанной выше директории и имеет следующий вид:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Применим процедуру PROC IMPORT для преобразование электронной таблицы в набор данных SAS:

Опция validvarname=V7 задает «правильные» с точки зрения SAS имена полей: все недопустимые символы заменяет знаками нижнего подчеркивания. О правилах именования переменных можно прочитать в Уроке 1.

Зададим фильтр сразу при чтении внешнего файла, например, выберем только те наблюдения, в которых дата окончания работ не пропущена. Обратите внимание, на синтаксис параметра where.

Рассмотрим детально операторы шага PROC IMPORT:

Datafile – определяет полный путь и имя внешнего файла
Dbms — определяет тип данных для импорта.
Out – идентифицирует выходной набор данных SAS с одно- или двухуровневым именем SAS (имя библиотеки и имя набора данных).
Replace – перезаписывает существующий набор данных SAS.
Getnames – Указывает, генерирует ли PROC IMPORT имена переменных SAS из значений данных в первой строке во входном внешнем файле.

Запустим шаг PROC IMPORT и изучим LOG:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Распечатаем полученный набор данных SAS:

Вывод процедуры PROC PRINT показан ниже:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Также в SAS UE вы можете воспользоваться вкладкой «Результаты» и ознакомиться с импортированным набором данных SAS.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Чтение наборов данных SAS

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Чтение набора данных SAS реализуется на шаге DATA с помощью оператора SET:

Рассмотрим общий синтаксис оператора SET:

Если вы не указываете в операторе SET набор данных, то он читает наблюдения из последнего созданного набора данных SAS.

В операторе SET можно указать несколько наборов данных, в этом случае SAS Data Sets допишутся один под другой (аналог UNION в SQL).

Также на шаге DATA может быть два оператора SET, в этом случае таблицы объединяются по общему столбцу. Подробнее о двух операторах SET можно прочитать, например, в этой статье.

Простейший код, создающий копию набора данных SAS, выглядит следующим образом:

Настройка дескриптора набора данных SAS

Изучить дескриптор набора данных SAS можно с помощью процедуры PROC CONTENTS (см. Урок 2). В данном уроке, мы распечатаем компоненту дескриптора с помощью процедуры PROC DATASETS:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Зададим постоянный формат для переменных Travel_Expenses и Budget:

Проверим атрибуты наборы данных SAS:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Создание вычисляемых столбцов

Кроме того, если нет подходящей функции для выполнения той или иной задачи, можно воспользоваться процедурой PROC FCMP и создать свою функцию.

В рамках данного урока мы изучим три функции YRDIF, SUM и CATS.

Для подсчета разницы в датах в годах мы будем использовать функцию YRDIF.

Напомню, что дата в формате SAS представляет собой количество дней, начиная с 01 января 1960 года (см. Урок 1). На представленных данных, нам необходимо вычислить время выполнения работ:

Обратите внимание, что с помощью формата 3.1 для переменной Lead_Time, мы округлили вычисленные значения в отчете (!) до 1 знака после запятой. Оператор формат не меняет значения в наборе данных SAS!

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Далее вычислим стоимость работ без командировочных расходов:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

В рамках нашей задачи стоимость работ без учета командировочных расходов мы вычислили без использования функции. В нашей таблице нет пропущенных значений, если бы одна из переменных (Budget или Travel_Expenses) имела бы пропущенное значение, результатом был «миссинг».

Создадим тестовый набор данных:

Вычислим разницу переменных Budget Travel_Expenses

Результат выполнения данного шага:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Для того, чтобы получить корректный результат, можно использовать функцию SUM.

Данная функция относится к категории функций описательной статистики. Функции описательной статистики игнорируют пропущенные значения.

Написание кода через SUM:

В этом случае результат выполнения шага выглядит следующим образом:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Третий вычисляемый столбец – это адрес электронной почты менеджера. Его можно «собрать» из столбцов Manager_FirstName, Manager_LastName и значения habr.com

Для объединения текстовых значений в одну строку можно использовать функцию CATS.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Изучим дескриптор созданного набора данных:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Обратите внимание на длину переменной Email.Она составляет 200 байт, это длина, возвращаемая по умолчанию функцией CATS. Если изучить атрибуты переменных Manager_FirstName и Manager_LastName, то мы можем убедиться, что на переменную Email достаточно 8+6+длина строки ‘@habr.com’, то есть еще 9 байт, итого 23. Почему стоит на это обратить внимание? Все недостающие символы добиваются пробелами, что сказывается на размере набора данных и на больших объемах данных будет сказываться на производительности.

Для того, чтобы задать длину переменной Email явно, необходимо использовать оператор LENGTH:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Создадим детализированный столбец на основании переменной Lead_Time, учитывая следующие условия:

Добавим условие, которое выбирает только те наблюдения, в которых значение переменной Detail не равно ‘above 5 years’. При использовании where в качестве фильтра будет возникать синтаксическая ошибка:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Оператор where не используется для вычисляемых столбцов. Для отбора нужных нам переменных необходим выборочный оператор IF. Он отменяет вывод наблюдения в создаваемый набор данных:

Обратите также внимание, что выборочный оператор IF требует арифметический оператор. Мы не можем написать, например, так:

В Log выведется ошибка:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Настраиваем набор данных SAS.

В новом наборе данных SAS не должны присутствовать переменные Manager_FirstName и Manager_LastName. Данное требование реализуется с помощью параметра DROP, так же можно использовать оператор DROP.

Разбиваем созданный набор данных SAS на два по заданному условию

На одном шаге DATA можно создать несколько наборов данных SAS. Создадим для каждой страны отдельный набор данных.

Чтобы проверить, какие значения есть в столбце Country, можно, например, использовать процедуру PROC FREQ.

Данный шаг считает, сколько раз то или иное значение из переменной Country встречается в указанном в параметре data= наборе данных SAS.

Результат выполнения данного шага будет следующим:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Итак, создадим два набора данных на одном шаге DATA, используя оператор OUTPUT и условную обработку:

Запустим код и посмотрим LOG:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Это кратко о чтении наборов данных SAS и их настройке. В следующей статье мы познакомимся с Вами с объединением наборов данных с помощью операторов MERGE и SET.

А в качестве P.S. напомню структуру наших уроков по SAS BASE:

Статьи, которые уже опубликованы:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что этоБуду рада обратной связи в комментариях! Какие еще темы Вы хотели бы увидеть в статьях?

Источник

Введение в программирование SAS

Система статистического анализа (SAS) — это программный комплекс, разработанный SAS Institute, одним из лидеров в аналитике. Это полезно для выполнения расширенной аналитики, многомерного анализа, бизнес-аналитики, функций управления данными, а также для проведения прогнозной аналитики.

Использование SAS:
SAS используется многими ведущими организациями, включая Google, Facebook, Twitter и Accenture, для ответов на многие вопросы, которые остаются на уровне бизнеса и организации, а также используется для создания информативных отчетов. Это помогает в прогнозировании бизнеса, улучшении качества, исследовании операций и управлении проектами. Это особенно полезно при разработке приложений и графического дизайна. Эта статья должна помочь вам получить представление о работе приложений SAS и подсказку о его сырой мощности.

Типы программного обеспечения SAS:
Существуют различные типы программного обеспечения SAS. В общем, есть 4 типа программного обеспечения SAS, которые приведены ниже.

Наиболее используемым программным обеспечением среди вышеуказанных типов является SAS для Windows. Он может быть легко развернут и позволяет модернизировать вашу среду SAS, включив сеточную обработку.

Библиотеки SAS:
Библиотеки — это механизмы хранения в SAS. Он может хранить программы, которые могут быть похожими по своей природе. Вообще говоря, есть 2 типа библиотек, а именно. временный и постоянный.

Временные библиотеки — это библиотеки, которые существуют только во время текущего сеанса или задания SAS. Постоянные библиотеки, как следует из названия, хранятся во внешнем хранилище и не удаляются в конце сеанса.

Рабочий процесс программирования SAS:
Прикладные программы SAS характеризуются управлением потоком, указанным на диаграмме ниже.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

На первом этапе приведенной выше диаграммы программа SAS считывает данные, которые обычно хранятся в виде рабочих листов в рабочей книге Excel. На этом этапе выполняется подключение к книге, и данные импортируются в формате, подходящем для использования на следующих этапах.

Исследуйте данные:
На втором этапе мы проверяем на несоответствия или неправильные значения. Здесь также могут генерироваться отчеты о частоте и сводная статистика. Глядя на эти отчеты и резюме на первый взгляд, мы можем сразу обнаружить некоторые несоответствия. Например, все имена меток категориального атрибута, кроме одного, могут быть написаны заглавными буквами. Другим примером неправильного значения является отрицательное значение для минимального количества прогонов, набранных игроком с битой во время строки матчей. Первые 5 строк также показаны на этом этапе.

Подготовить данные:
На этом этапе проблемы, обнаруженные на более раннем этапе, устраняются. Здесь мы создаем новые столбцы с существующими значениями или объединяем их. На этом этапе также выполняется условная обработка. Некоторые таблицы также объединены для обеспечения более согласованного представления данных. Эти таблицы имеют чистые и проверенные значения.

Анализ и отчетность по данным и экспорт результатов:
Последние две фазы объединяются в одну в прикладных программах SAS. Здесь мы создаем карты на основе географических координат, сводной статистики и т. Д., Которые являются одними из выходных моделей, используемых для отображения результатов. Мы также можем сохранить выходные модели, созданные в книге Excel, и загрузить их для последующего автономного использования.

Это общая структура приложения SAS. Надеюсь, что эта статья поможет вам получить четкое представление о рабочем процессе программы SAS.

Источник

Основы программирования на SAS Base. Урок 2. Доступ к данным

В предыдущей статье мы познакомились с интерфейсом SAS UE, терминологией SAS Base, типами данных, основными требованиях к синтаксису SAS Base, а также рассмотрели распространенные синтаксические ошибки.

Сегодня я расскажу, как можно получить доступ к данным различных форматов. Обратите внимание, что в данной статье имеются ссылки на документацию, которая поможет вам подробнее ознакомиться с рассматриваемыми примерами.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Что такое библиотеки SAS?

Библиотека в SAS – это метод централизованного хранения и прозрачного использования данных в программах SAS. Библиотека может быть папкой или каталогом на вашем компьютере или располагаться на внешнем жестком диске, FLASH-накопителе или компакт-диске и так далее.

Существует два типа библиотек: постоянные и временные. Постоянные библиотеки SAS сохраняются до тех пор, пока вы их не удалите. Постоянная библиотека доступна для обработки в последующих сеансах SAS. Временная библиотека SAS существует только для текущего сеанса SAS.

Файлы SAS, созданные во время сеанса, хранятся в специальном рабочем пространстве, которое может быть или не быть внешним носителем. Это рабочее пространство обычно назначается по умолчанию с именем Work. Файлы во временной рабочей библиотеке могут использоваться на любом шаге в программе SAS, но они не доступны для последующих сессий SAS. Файлы, хранящиеся в рабочей библиотеке, удаляются в конце сеанса SAS.

Назначаем пользовательскую библиотеку.

Рассмотрим простой случай назначения библиотеки: наборы данных SAS находятся в одной директории c:\habrahabr. Есть два способа решения этой задачи.

1 способ:

Настроить библиотеку без программного кода. Во вкладке «Библиотеки» в SAS UE выбрать «Новая библиотека»:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Далее появится окно для настройки пользовательской библиотеки:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Имя библиотеки – library reference (или libref). Libref – это «псевдоним» (ссылка) для «хранилища», в котором находятся файлы. Название библиотеке задается в соответствии с правилами именования переменных в SAS (см. Урок 1), но на него выделяется не более 8 символов.

Правила именования библиотек, переменных, наборов данных и пр. в SAS можно изучить в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation SAS Language Reference: Concepts в разделе Names in the SAS Language.

Обратите внимание, что библиотека назначена на все время сеанса SAS, но переопределять ее параметры можно.

Далее задаем путь к наборам данных SAS.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

После назначения библиотеки она появляется в левой панели SAS UE.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

2 способ:

Назначить библиотеку программным путем. Назначение библиотеки SAS реализуется с помощью глобального оператора LIBNAME. Информацию по указанному оператору можно изучить в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation / Global Statements.

Рассмотрим общий синтаксис глобального оператора LIBNAME.

libref – имя библиотеки.
engine — имя «движка», например, для наборов данных SAS – это BASE (но его можно не указывать, он задан по умолчанию). Если вы хотите создать новую библиотеку с другим «движком», отличным от механизма по умолчанию, вы можете отменить автоматический выбор.

Справочники, которые могут вам пригодиться при изучении механизмов подключения: SAS/ACCESS for Relational Databases и SAS Engines.

«Движки» SAS/ACCESS являются механизмами оператора LIBNAME, которые обеспечивают доступ к чтению, записи и обновлению более чем 60 реляционных и нереляционных баз данных, файлов ПК, устройств хранения данных и распределенных файловых систем.

‘SAS-library’ – путь к библиотеке, если путь задается с помощью макропеременной (будет рассматриваться в данном цикле статей), используются парные двойные кавычки. Во всех остальных случаях можно использовать парные одинарные кавычки.

options — допустимые опции. Простейшим примером является опция ACCSESS=READONLY, которая назначает атрибут «только для чтения» для всей библиотеки SAS. Со всем перечнем допустимых опций можно ознакомиться в справочнике SAS 9.4 and SAS Viya 3.3 Programming Documentation /Global Statements.

engine/host-options — являются одним или несколькими параметрами, которые перечислены в общей форме keyword = value.

Рассмотрим синтаксис оператора LIBNAME на практике. Назначим библиотеку Habr только для чтения:

Запустим код и проверим Log:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Сообщения в журнале указывают, что библиотека успешна назначена. В качестве библиотек можно подключать данные, которые физически находятся не в формате наборов данных SAS (промышленные БД, excel, access).

Просматриваем содержимое библиотеки SAS.

Один из вариантов просмотра содержимого библиотеки – использование процедуры PROC CONTENTS. Ознакомиться с процедурами, используемыми в SAS, можно в справочнике SAS 9.4 Procedures by Name and Product.

Процедура PROC CONTENTS позволяет создавать вывод, который описывает либо содержимое библиотеки SAS, либо информацию дескриптора для отдельного набора данных SAS. Чтобы просмотреть содержимое библиотеки SAS, мы можем использовать следующую общую форму процедуры:

Параметр NODS (который означает «no details») подавляет печать подробной информации о каждом файле при указании опции _ALL_.

Для конкретной библиотеки код будет выглядеть следующим образом:

Фрагмент вывода процедуры:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Обратите внимание, что в библиотеке также хранятся другие типы файлов, например catalog, index. О них можно прочитать в справочнике SAS 9.4 Companion for Windows, Fifth Edition.

Файлы с member type DATA являются стандартными наборами данных SAS. Второй вариант просмотра содержимого библиотеки – использовать процедуру PROC DATASETS:

Просмотр информации о конкретном наборе данных SAS реализуется следующим образом:

Обратите внимание на обращение к таблице в пользовательской библиотеке. Имя после data= двухуровневое: имя_библиотеки.имя_таблицы. В случае набора данных, хранящемся во временной библиотеке WORK, в обращении после data= можно использовать одноуровневое имя.

Например, в случае кода:

выведется информация о наборе данных charities, находящемся во временной библиотеке WORK.

Рассмотрим вывод процедуры для набора данных charities в пользовательской библиотеке HABR:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Служебная информация о таблице, получаемая в результате вывода, называется дескриптором.
Дескриптор содежит общую информацию о наборе данных: его название и имя библиотеки, типе, «движке», дате и времени создания и последнего изменения, количестве наблюдений и переменных, общей длине наблюдений, индексах, сортировке, сжатии, размере страницы и их количестве, информацию об атрибутах переменных.

Читаем электронные таблицы.

Чтение файла EXCEL можно реализовать несколькими способами. В этой статье мы рассмотрим назначение библиотеки для файла excel.

Для назначения библиотеки SAS будем использовать электронную таблицу products.xlsx, хранящуюся в директории c:\workshop\habrahabr\products.xlsx. Данный документ выглядит следующим образом: он содержит 4 листа, каждый из которых станет отдельным набором данных SAS. Фрагмент данного документа представлен ниже:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Общий синтаксис назначения библиотеки такой же, как и в случае наборов данных SAS, меняется только механизм подключения:

Существует несколько механизмов для обработки файла excel, у всех свои особенности и настройки, с которыми можно ознакомиться в документации.

Результат выполнения оператора libname представлены ниже. Фрагмент Log:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Информацию о библиотеке посмотрим через процедуру PROC CONTENTS:

В зависимости от механизма дескриптор заполняется по-разному:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Результат выполнения оператора LIBNAME представлены ниже. Фрагмент Log:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Информацию о библиотеке посмотрим через PROC CONTENTS:

В зависимости от механизма дескриптор заполняется по-разному:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Результат выполнения оператора libname представлены ниже.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Информацию о библиотеке посмотрим через PROC CONTENTS:

В зависимости от механизма дескриптор заполняется по-разному:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Создаем детализированные отчеты.

После получения доступа к требуемым данным рассмотрим процедуру для создания отчетов PROC PRINT. Подробную информацию о ней можно получить в справочнике SAS 9.4 Procedures by Name and Product. Распечатаем детализированный отчет, используя таблицу German из системной библиотеки sasuser.

Для начала изучим дескриптор указанной таблицы, нас интересуют атрибуты столбцов:

Фрагмент вывода процедуры:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Создадим детализированный отчет, удовлетворяющий представленным ниже требованиям:

Оператор VAR определяет переменные для печати. Оператор выводит их в том порядке, в котором вы их перечислили.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

В данном условии нам необходимо использовать фильтр в операторе WHERE.

Обратите внимание, что при работе с текстовыми переменными важен регистр, а также вы обязательно заключаете требуемое значение в парные кавычки (двойные или одинарные).
Вывод данной программы SAS:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

По умолчанию процедура PROC PRINT выводит номера строк, для того, чтобы убрать данный столбец, можно использовать опцию NOOBS (‘no observation’). В этом случае программный код выглядит следующим образом:

Операторы сравнения вы можете записывать привычными символами, а можете использовать мнемоники, как представлено в примере. Вывод данной программы представлен ниже:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Идентификатором наблюдения можно определить любую переменную. Когда вы указываете одну или несколько переменных в операторе ID, он использует форматированные значения этих переменных для идентификации строк. Обратите внимание, что если одновременно переменная указана в операторе VAR и в операторе ID, то она выведется два раза. Также при использовании оператора ID нет необходимости в опции NOOBS.

В нашем случае программа SAS будет иметь следующий вид:

Результаты выполнения кода представлены ниже:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Стоит отметить, что при задании атрибутов таких как ярлык и формат, они будут использованы только на определенном шаге PROC для создания требуемого отчета.

Для задания ярлыка используется оператор LABEL.

Общий синтаксис оператора LABEL выглядит следующим образом:

В ярлыке вы можете использовать любые символы, в том числе и пробелы, количество символов не должно превышать 256. Ярлыки переменных будут использованы для создания отчетов.
Не все процедуры «видят» ярлыки. Для того, чтобы процедура PROC PRINT выводила в отчет ярлыки, а не имена переменных, в опциях необходимо указать label (или split=). Опция SPLIT указывает разделитель, который контролирует разрывы в заголовках столбцов. Используем оператор LABEL в нашем программном коде:

1 вариант

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

2 вариант

(с использованием опции split=)

В опции split= указывается разделитель (обязательно в кавычках). Код в данном случае выглядит следующим образом (обратите внимание на использование разделителей в операторе Label):

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Оператор TITLE задает заголовок в отчете, оператор FOOTNOTE задает нижний колонтитул.

Как и в случае оператора LIBNAME, данные операторы являются глобальными и действуют во время всего сеанса SAS до тех пор, пока вы не переопределите их значения. Вы можете использовать TITLE и FOOTNOTE как вне шагов PROC, так и непосредственно в них.

Общий синтаксис операторов:

Text-string – данный аргумент является строкой, которая может содержать до 512 символов. Вам необходимо заключать такие строки в одиночные или двойные кавычки. Текст отображается точно так же, как вы вводите его в операторе, включая прописные, строчные буквы и пробелы.

Для заголовка в отчете вы можете использовать 10 операторов TITLE (аналогично с FOOTNOTE). Важно понимать, как переопределяются значения. Логика выполнения операторов одинаковая. Рассмотрим переопределение значений заголовков на примере оператора TITLE.

КодРезультатПримечание
TITLE ‘String number one’;String number oneTITLE и TITLE1 эквивалентны
TITLE ‘String number three’String number one

String number three

Строка №2 пустая
TITLE2 ‘String number two’;String number one
String number two
TITLE2 задал значение заголовку на второй строке и удалил значения заголовков ниже.
TITLE1 ‘New Title’;New TitleTITLE1 задал значение заголовку на 1 строке и удалил значения заголовков ниже.
TITLE;Пустой оператор TITLE удаляет все заголовки.3

Другими словами, оператор TITLEn переопределяет значение заголовка в строке n и удаляет значения заголовков строк c n+1 до 10.

Также для настройки заголовков и нижних колонтитулов можно использовать стили:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Итак, возвращаясь к разрабатываемому отчету:

Результат выполнения программы:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Формат – это правило вывода значений переменных в отчет. Необходимо понимать, что формат не меняет значения в наборе данных SAS. Типы форматов соответствуют типу данных, но разбиты на категории: числовые, символьные, даты, время, дата-время.

Всю информацию о форматах можно найти в справочнике SAS 9.4 Formats and Informats: Reference. Также поддерживается возможность создания пользовательских форматов, об этом мы поговорим в следующих статьях.

Общий синтаксис оператора FORMAT.

variable – одна или несколько переменных, к которым небходимо применить формат.

DEFAULT=default-format – определяет временный формат по умолчанию для отображения значений переменных, которые не указаны в операторе FORMAT, используется в шаге DATA.

format – определяет формат, который используется для отображения переменных.

Общий синтаксис использованиея формата в операторе FORMAT следующий:

$ — признак текстового формата
Format – название формата
w — ширина формата, количество всех выводимых символов в значении
d — количество десятичных знаков

Формат всегда оканчивается на точку или на количество десятичных знаков. Стоит отметить, что при неверном выборе ширины формата значения в выводе могут «обрезаться». Давайте рассмотрим пример:

Значение переменнойФорматРезультат
34566.78DOLLAR10.2$34,566.78
34566.78DOLLAR9.2$34566.78
34566.78DOLLAR8.234566.78
34566.78DOLLAR7.234566.8
34566.78DOLLAR6.234567
34566.78DOLLAR4.235E3

При этом значение в наборе данных SAS остается неизменным:

Результат выполнения шага:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Итак, применим формат к переменной Pre:

Отчет выглядит следующим образом:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Для группировки переменных используется оператор BY. Группировка переменных по определенным значениям подразумевает сортировку таблицы. Это связано с обработкой данных SAS Base.

Отсортировать набор данных можно с помощью процедуры PROC SORT.

При сортировке набора данных вам необходимо указать источник (исходный набор данных), группирующую переменную или переменные, а также при необходимости выходной (промежуточный) набор данных.

Давайте проверим вышеизложенное. Если посмотреть на отчет, выводимый в п.7 данной статьи, столбец Gender отсортирован по полу по убыванию. Так ли это?

Результат выполнения процедуры представлен ниже:

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Добавим несколько опций для создания итогового отчета: nobyline и #byVAL()

Таким образом, мы получили требуемый детализированный отчет на основании набора German в библиотеке Sasuser.

Программирование sas что это. Смотреть фото Программирование sas что это. Смотреть картинку Программирование sas что это. Картинка про Программирование sas что это. Фото Программирование sas что это

Итак, это кратко об организации доступа к данным и созданию детализированных отчетов. В следующей статье мы рассмотрим чтение внешних файлов, изучим операторы INFILE и INPUT, а также процедуру PROC IMPORT.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *