Цикл Do Loop, Do While и Do Until в SAS (с примерами)
SAS, инструмент статистического анализа и визуализации данных, управляемый командами, является одним из наиболее широко используемых статистических программных инструментов в различных отраслях. Некоторые из его приложений включают разработку приложений, хранение данных, написание отчетов и управление данными. Он не зависит от платформы, то есть работает практически на любой операционной системе, включая Ubuntu, Mac OS, Windows, Linux и другие.
В этом уроке мы рассмотрим, как циклы используются в SAS для выполнения задач и операций программирования.
Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore Programme
Что такое цикл SAS?
Циклы — это одна из самых начинающих концепций, которую необходимо знать каждому программисту, будь то C, C++, Python или SAS. Циклы являются важнейшей особенностью любой программы, поскольку они позволяют нам выполнять вычисления и операции для заданного набора параметров необходимое количество раз.
В SAS существуют различные типы циклов:
- ДЕЛАТЬ ЦИКЛ
- ДЕЛАЙТЕ ПОКА
- ДЕЛАТЬ, ПОКА
Теперь давайте углубимся в детали всех этих циклов.
Типы петель SAS
Как обсуждалось ранее, в SAS существует три типа циклов, а именно: DO LOOP, DO WHILE и DO UNTIL.
Петли SAS — DO LOOP
Синтаксис
Значение DO = начало ТО остановка
Пример
данные data_bin;
делаю я = от 1 до 4;
у = я **2;
выход;
конец;
бегать;
Выход
2, 5, 9, 16, 25
Цикл SAS завершается оператором END. По умолчанию каждая итерация оператора DO увеличивает значение счетчика на единицу, но для увеличения счетчика на другие значения, включая нецелые значения, мы можем использовать опцию BY.
Например, каждая итерация следующего шага ДАННЫЕ увеличивает значение I на 0,3:
данные data_bin;
do i = от 1 до 5 на 0,3;
у = я **2;
выход;
конец;
бегать;
Выход
1, 2,25, 4, …, 16, 20,25, 25
Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore Programme
Петли SAS — ДЕЛАЙТЕ ПОКА
Мы можем выполнять итерацию, пока условие истинно, используя оператор DO с предложением WHILE. Поскольку условие проверяется перед каждой итерацией, нам необходимо установить условие остановки перед запуском цикла.
Следующий пример основан на примере шага DATA, итерация выполняется до тех пор, пока k меньше 20. Условие WHILE не выполняется, когда j=4; поэтому цикл повторяется еще раз.
Синтаксис
СДЕЛАЙТЕ while()…end;
Пример
данные data_bin;
к = 0;
do j = от 1 до 5 на 0,5 while(k
к = j**2;
выход;
конец;
бегать;
Выход
1, 2,25, 4, …, 16, 20,5
Циклы SAS — ДЕЛАТЬ ДО ДО тех пор, пока
Вы можете выполнять итерацию до тех пор, пока условие не станет истинным, с помощью предложения UNTIL вместе с оператором DO. Условие UNTIL не нужно инициализировать, поскольку оно оценивается ближе к концу цикла DO.
Поскольку условие оценивается ближе к концу цикла, цикл DO с предложением UNTIL всегда выполняется хотя бы один раз. Чтобы этого не произошло, мы можем использовать цикл DO с предложением WHILE.
Синтаксис
Делать до()…конец;
Пример
данные carloan_until;
кредит = 30000;
выплаты = 0;
делать до (кредит = 0);
кредит = кредит – 500;
выплаты = выплаты + 1;
конец;
бегать;
Выход
ДЕЛАТЬ ПОКА VS ДЕЛАТЬ ПОКА
Основное различие между DO WHILE и DO UNTIL обычно заключается в следующем:
- Используя предложение WHILE, мы выполняем итерацию до тех пор, пока выполняется условие цикла DO.
- Используя предложение UNTIL, мы выполняем итерацию до тех пор, пока не будет выполнено определенное условие.
Теперь давайте посмотрим, как мы можем объединить эти различные типы циклов DO в SAS, чтобы реализовать мощный цикл, позволяющий максимально эффективно использовать программу.
Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore Programme
Сочетание условных и итеративных циклов Do
Когда и итеративный, и условный циклы объединяются в единый цикл, мощность циклов DO в SAS умножается на некоторый коэффициент. Давайте посмотрим на убедительный пример ниже, чтобы лучше понять это.
Пример
Определить количество лет, в течение которых можно сэкономить 20 000 долларов США в фонде колледжа.
В этом случае нам нужно знать, сколько денег нам нужно откладывать каждый месяц и сколько времени потребуется, чтобы накопить 20 000 долларов на обучение в колледже. Среднестатистический человек планирует поступить в колледж в возрасте 18 лет. Мы не считаем, что количество лет может превысить 18 лет.
Учитывая, что на нашем сберегательном счете еще нет денег, мы начнем с установки значения «фонда» в программе SAS равным нулю. Чтобы сгенерировать выходные значения в валютном формате, к переменной фонда применяется формат доллара 8.2.
Поскольку мы не хотим выполнять цикл дольше 18 лет, мы начинаем цикл DO с инициализации индексной переменной «j» равным 1 и заканчиваем через 18. Нам нужно добавить условие «до тех пор, пока мы хотим сохранить только 20 000 долларов».
do j = от 1 до 18 до (фонд >= 20000);
SAS выполняет цикл либо до тех пор, пока не пройдет 18 лет, либо пока фонд не превысит 20 000 долларов США, в зависимости от того, что произойдет раньше.
Нам нужно откладывать 1000 долларов каждый год на сберегательный счет с годовой процентной ставкой 1%. Чтобы учесть это, на каждой итерации значение «фонда» увеличивается на 1000, а затем умножается на 1,01, чтобы добавить 1% к процентной стоимости фонда. Можно легко отследить, сколько лет потребуется, чтобы достичь 20 000 долларов, установив переменную «Годы», равную индексной переменной i.
данные колледж_фонд;
фонд = 0;
формат фонда доллар8,2;
do j = от 1 до 18 до (фонд >= 20000);
фонд = (фонд + 1000) * 1,01;
годы = j;
выход;
конец;
уронить j;
бегать;
Как видно из результата ниже, откладывая 1000 долларов каждый год на сберегательный счет с доходом 1% в год, через 18 лет мы получим чуть меньше 20 000 долларов:
Мы можем заметить другой результат, если изменим годовую сумму вклада на 1200:
данные data_bin;
фонд = 0;
формат фонда доллар8,2;
do j = от 1 до 18 до (фонд >= 20000);
фонд = (фонд + 1200) * 1,01;
годы = j;
выход;
конец;
уронить j;
бегать;
Теперь цикл прекращает выполнение после 16 итераций, как видно из измененного набора данных ниже, поскольку 16 лет было достаточно, чтобы фонд образования превысил порог в 20 000 долларов.
- Наборы данных SAS
- Руководство по макросам SAS
- SAS-массивы
- Линейная регрессия SAS
- Гистограмма САС
Воспользуйтесь преимуществами программы №1 в мире по науке о данных, чтобы освоить SAS
В этой статье мы рассмотрели циклы в SAS и то, как каждый цикл можно использовать при выполнении различных типов программ. Обычно в SAS существует три типа циклов: DO LOOP, DO WHILE и DO UNTIL.
Мы используем разные циклы в разных контекстах в зависимости от нашего использования. Мы используем циклы DO с предложением WHILE, когда хотим, чтобы цикл выполнялся до тех пор, пока выполняется условие, но с UNTIL, когда мы хотим, чтобы цикл выполнялся до тех пор, пока условие выполняется. Возможности всех трех циклов также можно объединить, чтобы реализовать лучший и более мощный цикл в программе, которую мы видели в рамках программы финансирования колледжей.
В SAS есть больше таких концепций, которые требуют изучения и освоения, чтобы стать лучшим профессионалом на различных должностях, связанных с наукой о данных. Simplilearn предлагает комплексный учебный курс по науке о данных для таких энтузиастов, чтобы они могли учиться, исследовать и лучше готовиться к SAS и науке о данных. Итак, чего же вы ждете? Посетите наш курс, созданный экспертами, прямо сейчас!