Программирование SAS - научитесь кодировать на SAS!



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

В этом блоге я познакомлю вас с некоторыми важными концепциями программирования SAS. Прежде чем мы начнем, важно, чтобы вы познакомились с SAS. Мой предыдущий блог на Учебное пособие по SAS поможет вам понять SAS и его приложения, а также поможет установить SAS University Edition, который мы будем использовать здесь в качестве среды программирования. Хотите знать, какими навыками вы должны овладеть в этом году? Кроме того, если вы планировали перейти к аналитике данных, - один из лучших способов начать с того же.

Вышло руководство Edureka 2019 Tech Career Guide! В руководстве представлены самые популярные должности, точные схемы обучения, обзор отрасли и многое другое. Скачать сейчас же.





Так что без дальнейшегозадержкадавай начнем с программирования SAS, ладно?

Этот блог поможет вам разобраться в следующих темах:



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

Основы программирования SAS

SAS Windows

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

На следующем изображении показаны различные части SAS Windows.



SAS-Windows - Программирование SAS - Edureka

  • Окно журнала : Это окно исполнения. Здесь вы можете проверить выполнение вашей программы. Он также отображает ошибки, предупреждения и примечания.
  • Окно кода :Это окно также известно как окно редактора. Считайте его чистым листом бумаги или блокнотом, в который вы можете написать свой код SAS.
  • Окно вывода : Как следует из названия, это окно отображает вывод программы / кода, который вы пишете в редакторе.
  • Окно результатов : Это индекс, в котором перечислены все результаты программ, запускаемых за один сеанс. Так как он содержит результаты определенного сеанса, если вы закроете программу и перезапустите ее, окно результатов будет пустым.
  • Окно просмотра : Содержит список всех библиотек в системе. Вы также можете просмотреть здесь файлы, поддерживаемые системой.

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

настроить eclipse для java

Наборы данных SAS

Наборы данных SAS называются файлами данных. Файлы данных состоят из строк и столбцов. Строки содержат наблюдения, а столбцы -Имена переменных.

Переменные SAS

SAS имеет два типа переменных:

  • Числовые переменные : Это тип переменной по умолчанию. Эти переменные используются в математических выражениях.
  • Символьные переменные :Символьные переменные используются для значений, которые не используются в математических выражениях.
    Они рассматриваются как текст или строки. Переменная становится символьной переменной, добавляя‘$’ Signв конце имени переменной.

Библиотеки SAS

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

  • Временная библиотека : В этой библиотеке набор данных удаляется при завершении сеанса SAS.
  • Постоянная библиотека : Наборы данных сохраняются постоянно. Следовательно, они доступны для разных сеансов.

Пользователи также могут создавать или определять новую библиотеку, известную как пользовательские библиотеки, с помощью ключевого слова LIBNAME . Это тоже постоянные библиотеки.

Программирование SAS: структура кода SAS

Программирование SAS основано на двух строительных блоках:

  • ДАННЫЕ Шаг : Шаг DATA создает набор данных SAS, а затем передает данные на шаг PROC.
  • PROC Step : Шаг PROC обрабатывает данные

Программа SAS должна следовать нижеприведенным правилам:

  • Почти каждый код начинается с шага DATA или PROC.
  • Каждая строка кода SAS заканчивается точкой с запятой
  • Код SAS заканчивается ключевым словом RUN или QUIT.
  • Коды SAS не чувствительны к регистру
  • Вы можете написать код в разных строках или вы можете написать несколько операторов в одной строке

Теперь, когда мы ознакомились с несколькими базовыми терминологиями, давайте начнем программирование SAS с помощью этого базового кода:

ДАННЫЕ Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

В приведенном выше коде мы создали набор данных под названием Employee_Info. Он имеет три переменные: одну числовую переменную Emp_Id и две символьные переменные Emp_Name и Emp_Verticals. Команда «Выполнить» отображает набор данных в окне вывода.

На изображении ниже показан результат выполнения вышеупомянутого кода.

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

ДАННЫЕ Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run PROC PRINT DATA = Employee_Info Run

На изображении ниже показан результат выполнения вышеуказанного кода.

Мы просто создали набор данных и поняли, как работает процедура PRINT. Теперь давайте возьмем вышеуказанный набор данных и воспользуемся им для дальнейшего программирования. Допустим, мы хотим добавить дату присоединения сотрудника к набору данных. Итак, мы создаем переменную с именем DOJ, передаем ее в качестве входных данных и печатаем результат.

ДАННЫЕ Employee_Info ввод Emp_ID Emp_Name $ Emp_Vertical $ DOJ данные 101 Mak SQL 18.08.2013 102 Rama SAS 25.06.2015 103 Priya Java 21.02.2010 104 Karthik Excel 19.05.2007 105 Mandeep SAS 11.09.2016 Запустить PROC PRINT DATA = Employee_Info Run

На изображении ниже показан результат выполнения вышеуказанного кода. Видно, что переменная была создана, но значение DOJ не было напечатано. Вместо этого мы видим, что точки заменили значения даты.


Почему это случилось? Ну, переменная DOJ не имеет суффикса «$», это означает, что по умолчанию SAS будет читать ее как числовую переменную. Но данные, которые мы ввели, имеют специальный символ «/», поэтому он не выводит результат, поскольку это не чисто числовые данные. Если вы проверите окно журнала, вы увидите сообщение об ошибке «неверные данные для переменной DOJ».

Как теперь решить эту проблему? Что ж, один из способов решить эту проблему - использовать суффикс «$» для переменной DOJ. Это преобразует переменную DOJ в символ, и вы сможете печатать значения даты. Давайте внесем изменения в код и посмотрим на результат.

ДАННЫЕ Employee_Info ввод Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ данные 101 Mak SQL 18.08.2013 102 Rama SAS 25.06.2015 103 Priya Java 21.02.2010 104 Karthik Excel 19.05.2007 105 Mandeep SAS 11.09.2015 / 2016 Run PROC PRINT DATA = Employee_Info Run

На экране вывода будет отображаться следующий вывод.


Вы можете видеть, что значения данных отображаются в виде дат путем преобразования DOJ в символ. Однако это временное решение. Позвольте мне объяснить это как?

Что ж, представьте, что у банка есть аналогичный набор данных. В наборе данных есть сведения о владельце счета, такие как сумма кредита, взносы,исрок платежа по кредиту. Представьте, что держатель пропустил свой крайний срок для выплаты взноса, и банк хочет рассчитать задержку. Банку необходимо будет рассчитать разницу между датой крайнего срока и текущей датой.

Но если в наборе данных банка есть даты в символьном формате, то банк не сможет выполнять с ними математические операции. Эта проблема также может повлиять на наш набор данных. Так как же решить эту проблему?

Следующая концепция поможет вам преодолеть эту проблему.

Информация и форматы в SAS

Если вы хотите хорошо разбираться в программировании SAS, важно хорошо понимать эту тему.Если вы помните, я упоминал ранее, что в SAS есть два стандартных типа переменных:

  • Числовой
  • символ

Когда SAS обнаруживает нестандартные переменные, SAS выдаст ошибку, иначе вы не получите желаемого результата. Чтобы решить эту проблему, SAS используетИнформированныйи форматы.

Узнать больше

Информационные данные обычно используются для чтения или ввода данных из внешних файлов или плоских файлов (например,текстовые файлы или последовательные файлы). Информация указывает SAS, как читатьданные в переменные SAS. SAS имеет три типа информации:символьный, числовой и дата / время. Информация названа в соответствии со следующимструктура синтаксиса:

  • Информация о символах: $ INFORMATw.
  • Числовые данные: INFORMATw.d
  • Дата / время информирования: INFORMATw.

Знак «$» указывает на символьную информацию. ИНФОРМАТ относится к иногда необязательнымИмя SAS informat. 'W' указывает ширину (байты или количество столбцов)переменная. 'D' используется для числовых данных, чтобы указать количество цифр справа отдесятичный разряд. Вся информация должна содержать десятичную точку (.), Чтобы SAS мог
отличать информацию от переменной SAS.

Давайте вернемся к нашему предыдущему коду и посмотрим, поможет ли нам информация о дате / времени. Итак, давайте изменим код соответствующим образом и добавим к нему Date Informat следующим образом:

ДАННЫЕ Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. данные 101 Mak SQL 18.08.2013 102 Rama SAS 25.06.2015 103 Priya Java 21.02.2010 104 Karthik Excel 19.05.2007 105 Mandeep SAS 11.09.2016 Запустить PROC PRINT DATA = Employee_Info Run

Строка номер 3 в коде инструктирует SAS прочитать в переменной «дата присоединения» (DOJ), используя дату
informat MMDDYYw. Каждое поле даты занимает 10 пробелов, квалификатор «w.»установлен на 10.

Результат кода будет выглядеть следующим образом.

Результат показывает, что у нас все еще нет желаемого результата, вместо этого столбец DOJ содержит некоторые числовые значения, а не даты, которые мы указали. Итак, почему это так? Что ж, как только дата считывается с информацией о дате, SAS сохраняет дату в виде числа. Это означает, что оно читается как количество дней между датой и 1 января 1960 г. (Например: 15 марта 1994 г. сохраняется как 12492).

Причина в том, что в SAS есть три отдельных счетчика, которые отслеживают дату и время. Эти счетчики дат начали с нуля 1 января 1960 года. Следовательно, даты до 01.01.1960 имеют отрицательные значения, а любая дата после них имеет положительное значение. Каждый день в полночь счетчик даты увеличивается на единицу.

Одна история гласит, что основатели SAS хотели использовать приблизительную дату рождения системы IBM 370 и выбрали 1 января 1960 года в качестве легко запоминающегося приближения.

Теперь, когда вы знаете причину, по которой столбец DOJ отображал эти числа, давайте попробуем решить эту проблему. Чтобы решить эту проблему, мы используем Format.

Формат

Информация - это инструкции для чтения данных, а форматы - это инструкции, используемые для отображения иливыходные данные.Определение формата для переменной - это то, как вы указываете SAS отображать значения в переменной. Форматы сгруппированы в те же три класса, что и информационные (символьные, числовые и дата-время), и также всегда содержат точку.

Общая форма заявления о формате:

  • FORMAT имя-переменной FORMAT-NAME.

Давайте вернемся к нашему коду с набором данных Employee_Info, чтобы увидеть, можем ли мы правильно отобразить дату с помощью команды FORMAT.

ДАННЫЕ Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. ФОРМАТИРОВАТЬ DOJ ddmmyy10. данные 101 Mak SQL 18.08.2013 102 Rama SAS 25.06.2015 103 Priya Java 21.02.2010 104 Karthik Excel 19.05.2007 105 Mandeep SAS 11.09.2016 Запустить PROC PRINT DATA = Employee_Info Run

Мы использовали команду FORMAT в строке 4 в приведенном выше коде. Следующий экран вывода даст нам желаемый результат.

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

Петли SAS

При программировании SAS мы можем столкнуться с ситуациями, когда нам постоянно нужно выполнятьблок кода несколько раз. Неудобно писать один и тот же набор утверждений снова и снова. Здесь на сцену выходят петли. В SAS оператор Do используется для реализации циклов. Он также известен как Do Loop. На изображении ниже показанобщая форма операторов цикла Do в SAS.

Ниже приведены типы циклов DO в SAS:

  • Показатель : Цикл продолжается от начального значения до конечного значения индексной переменной.
  • В то время как : Цикл продолжается, пока В то время как условие становится ложным.
  • До тех пор : Цикл продолжается до До тех пор состояние становится Истинным.

Сделать цикл индекса

Мы используем индексную переменную как начальное и конечное значение для Сделать цикл индекса . Операторы SAS выполняются повторно, пока индексная переменная не достигнет своего окончательного значения.
Синтаксис:

Сделать indexvariable = initialvalue до finalvalue Операторы SAS Конец

Давайте посмотрим на пример кода, чтобы понять цикл Do Index. В приведенном ниже коде VAR является индексной переменной.

ДАННЫЕ SampleLoop SUM = 0 Do VAR = от 1 до 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Когда вы выполните приведенный выше код, вы получите следующий результат.

Сделать цикл

В Делать пока цикл использует условие WHILE. Этот цикл выполняет блок кода, когда условие истинно, и продолжает его выполнять, пока условие не станет ложным. Как только условие становится ложным, цикл завершается.

Синтаксис:

Do While (условие) Операторы SAS Конец

Следующий пример кода поможет вам понять цикл DO WHILE.

DATA SampleLoop SUM = 0 VAR = 1 Do While (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

Приведенный выше код даст вам следующий результат.

До цикла

Цикл Do until использует До тех пор Цикл выполняет блок кода, когда условие ложно, и продолжает его выполнять, пока условие не станет истинным. Как только условие становится истинным, цикл завершается.

Синтаксис:

как установить php на windows 7
Выполнить до (условие) Операторы SAS END

Давайте посмотрим на пример программы.

DATA SampleLoop SUM = 0 VAR = 1 До (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Выполнить

Код имеет следующий вывод.

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

Теперь давайте взглянем на некоторые статистические процедуры. Эти процедуры станут основой для продвинутых аналитические процедуры.

Подпишитесь на наш канал на YouTube, чтобы получать новости ..!

Основные статистические процедуры с использованием SAS

СРЕДСТВА ПРОЦЕДУРЫ

Эта процедура используется для расчета среднего арифметического и стандартного отклонения. Людям, которые плохо знакомы со статистикой, может быть сложно понять эти термины. Итак, прежде чем мы начнем кодировать и воспользуемся этой процедурой. Я постараюсь объяснить, что означают эти термины.

Давайте начнем со среднего арифметического и посмотрим, как PROC MEANS используется в программировании SAS для его расчета.

Среднее арифметическое

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

В программировании SAS вы используете PROC MEANS для вычисления среднего арифметического. Эта процедура позволяет вам найти среднее значение всех переменных или нескольких переменных набора данных. Вы также можете формировать группы и вычислять среднее значение переменных, относящихся к этой группе.

Синтаксис:

PROC MEANS DATA = DATASET Class Variables Var Variables
  • Переменные : Переменные в приведенном выше синтаксисе указывают переменные из набора данных, среднее значение которых должно быть вычислено.

Среднее значение набора данных

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

Давайте посмотрим на пример кода. Я рассмотрел предопределенный набор данных SAS под названием «автомобили». Следующая команда отобразит набор данных.

PROC PRINT data = sashelp.CARS Run

На изображении ниже показан результат выполнения вышеуказанного кода.


Теперь давайте используем этот код набора данных и вычислим среднее значение каждой переменной в наборе данных.'легковые автомобили'.

PROC MEANS DATA = sashelp.CARS Среднее значение SUM MAXDEC = 2 Выполнить

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

Среднее значение выбранных переменных

Указав имена в опции Var, вы можете получить среднее значение указанных переменных. Пожалуйста, обратитесь к приведенному ниже коду.

PROC MEANS DATA = sashelp.CARS означает SUM MAXDEC = 2 var лошадиные силы цилиндров Run

Среднее по классу

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

PROC MEANS DATA = sashelp.CARS MEANS SUM MAXDEC = 2 class make type var horsepower Run

На изображении ниже показан результат выполнения вышеуказанного кода.

Давайте продолжим наш блог о программировании SAS и рассмотрим еще одну важную статистическую концепцию.

Среднеквадратичное отклонение

Стандартное отклонение (SD) - это мера того, насколько разнообразны данные в данном наборе данных. Математически он говорит вам, насколько близка каждая точка данных к среднему значению набора данных. Если значение стандартного отклонения близко к 0, это означает, что точки данных очень близки к среднему значению набора данных, а высокое стандартное отклонение указывает, что точки данных распределены по широкому диапазону значений.

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

  • СРЕДСТВА ПРОЦЕДУРЫ
  • ОБСЛЕДОВАНИЕ

Стандартное отклонение с использованием PROC MEANS

Вы можете измерить стандартное отклонение с помощью процедурных средств, вы должны выбрать ЧАСЫ на шаге PROC. Он отобразит значения стандартного отклонения для каждой числовой переменной в наборе данных.

Синтаксис:

PROC MEANS DATA = набор данных STD

Рассмотрим этот пример кода, давайте создадим еще один набор данных CARS1 из набора данных CARS в библиотеке SASHELP. Для этого воспользуемся процедурой PROC SQL. Давайте сгруппируем данные, используя «тип» и «марку» автомобилей, и рассчитаем стандартное отклонение для выбранных переменных, используя опцию STD с шагом PROC means.

PROC SQL создает таблицу CARS1 как SELECT марка, тип, мощность, цилиндры, вес FROM SASHELP.CARS WHERE make in ('Audi', 'BMW') RUN PROC MEANS DATA = CARS1 STD Run

Приведенный выше код даст стандартное отклонение для выбранных переменных. На следующем изображении показан результат.

аспирант и магистр то же самое

ПРОЦЕДУРЫ ИССЛЕДОВАНИЯ

Эта процедура используется для измерения стандартного отклонения вместе с некоторыми дополнительными функциями, такими как измерение стандартного отклонения для категориальных переменных и дисперсии.

Синтаксис:

PROC SURVEYMEANS параметры ключевые слова статистики По переменным Переменные класса Переменные Var

Ниже приводится описание используемых параметров:

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

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

PROC SURVEYMEANS DATA = CARS1 STD Тип класса Var тип мощность ods статистика вывода = прямоугольник Run PROC PRINT DATA = прямоугольник Run

На изображениях ниже показан результат выполнения кода выше. Он показывает распределение данных для переменной «лошадиные силы» для 95% доверительного интервала. (Доверительный интервал означает диапазон значений, определенный таким образом, что существует определенная вероятность того, что значение параметра находится внутри него.)

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

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

Есть вопрос к нам? Пожалуйста, отметьте это в разделе комментариев, и мы свяжемся с вами.