Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 1. Программирование на языке SAS. Основы шага DATA

Лекция 1. Программирование на языке SAS. Основы шага DATA (Лекции 2015), страница 2

PDF-файл Лекция 1. Программирование на языке SAS. Основы шага DATA (Лекции 2015), страница 2 (ППП СОиАД) (SAS) Пакеты прикладных программ для статистической обработки и анализа данных (63198): Лекции - 10 семестр (2 семестр магистратуры)Лекция 1. Программирование на языке SAS. Основы шага DATA (Лекции 2015) - PDF, страница 2 (63198) - СтудИзба2020-08-25СтудИзба

Описание файла

Файл "Лекция 1. Программирование на языке SAS. Основы шага DATA" внутри архива находится в папке "Лекции 2015". PDF-файл из архива "Лекции 2015", который расположен в категории "". Всё это находится в предмете "(ппп соиад) (sas) пакеты прикладных программ для статистической обработки и анализа данных" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Будьте осторожный с пропусками в строках!!!20Библиотеки• Возникли как подход к централизованному хранению ипрозрачному использованию данных в программах SASСамый простой случай библиотеки –это наборы данных, находящиеся водной директории.При запуске SAS сразу имеетсянесколько служебных библиотек,временная библиотека Work (онабудет очищена при отключении отсервера или завершении процессаsas.exe) и персональная библиотекаSasuser (данные хранятся постоянно).В качестве библиотек можно подключать данные, которые физически находятсяне в формате наборов данных SAS (промышленные БД, excel, access). Длябольшей части вашей программы будет всё равно, как (и где) данные хранятся.21Подключение библиотеки в SAS UE1.

Копируете директорию снаборами данных в директорию…./SASUniversityEdition/myfoldersОткрываете меню “My Folders”.2. В SAS Studioсоздаёте библиотекучерез меню.22Создание библиотек• Подключение библиотеки может производиться программным путём(оператор libname):libname mylib ‘folders/myfolders‘;mylib - название библиотеки: 0-9, a-z, _, не может начинаться с цифры, не более 8символов длиной• Подключенная таким образом библиотека «живет» до завершениясеанса (для SAS U - до “Sign out”, если не включить волшебную галочкупри создании библиотеки)• Теперь в программе можно обращаться к набору данных не указываяполный путь, а с помощью 2-х уровневого имени (которое записываетсячерез точку):.testdatasetmylibЕсли первая часть не указана – предполагается библиотека WorkСодержимое библиотеки можно посмотреть с помощью процедуры:proc contents data=mylib._all_;run;где mylib – имя библиотеки231234567891011121314151617Программа на языке SAS Baseoptions linesize=95 pagesize=52;data work.NewSalesEmps;length First_Name $ 12 Last_Name $ 18Job_Title $ 25;infile 'newemps.csv' dlm=',';input First_Name $ Last_Name $Job_Title $ Salary;run;proc print data=work.NewSalesEmps;run;proc means data=work.NewSalesEmps;class Job_Title;var Salary;run;24Оператор options• Глобальный – действует на всю программу• Но может встречаться несколько раз, «переключая» опциимежду шагами• В общем случае зависит от ОС и среды выполнения SASпрограммы• Может много чего:• Задавать параметры вывода и журанала (в том числе для отладочнойинформации)• Задвайть ограничения на количество информации для чтения/записи• Настраивать параметры для времени и даты• Управлять памятью• И много чего другого• Значения настроек можно получать через функцию GETOPTIONS25Программа на языке SAS Base• Программа не требует явного подключения «библиотек» спроцедурами, которые есть в установленном дистрибутиве SAS (аля «#include»), но может подключать внешние файлы с SASкодом на этапе работы макропроцессора(%include)• Программа «по шагам»• Минимальный «фрагмент» программы, который SAS можетвыполнить, это один шаг (начинается с операторов «data» или«proc»)• В интерактивном режиме можно выполнить один или несколькошагов программы (выделить код мышкой и нажать кнопку RUN)• Каждый оператор должен заканчиваться «;»• Каждый шаг должен заканчиваться операторами «run;», «quit;»,или началом следующего шага• Форматирование свободное (программу можно записать в однустроку, оператор можно разбивать на несколько строк)26Шаг DATA• Обработку данных нужно было делать ещё до того, как был принят стандарт SQL(wiki: в 1986 году первый стандарт языка SQL был принят ANSI, SAS развивается с1966г, с 1976 как коммерческий продукт).• Шаг DATA дополняет SQL и наоборот (SQL – работа с множеством наблюдений,шаг DATA – работа с единичными наблюдениями).

Чем пользоваться дляконкретных целей – нужно думать.• Шаг DATA очень часто требует существенно меньше ресурсов по сравнению с SQL(важно если данных много), но нужно изучить логику его работы, которая бываетнетривиальной.• Позволяет создавать и манипулировать наборами данных SAS (включая запись,чтение наборов данных, чтение необработанных данных, изменение структуры,создание агрегатов, объединение таблиц, фильтрацию наблюдений, можноиспользовать условные переходы, циклы, вызов пользовательских и встроенныхфункций, ...).• Мы посмотрим малую часть того, что может шаг DATA.

Справка по DATA STEP:• SAS(R) 9.3 Language Reference: Concepts, Second Edition -> DATA Step Concepts• SAS(R) 9.3 Language Reference: Concepts, Second Edition -> Dictionary ofLanguage Elements -> SAS Data Set Options27Шаг DATAСамая простая операция – создание копии набора данных:26 data employees;новый набор данных27set employee_list;исходный набор данных28 run;Что происходит при запуске такого шага?(см. Overview of DATA Step Processing: Flow ofAction)1) Фаза «компиляции»:- проверка синтаксиса- создание вектора данных (Program Data Vector,PDV) – области в памяти, где хранятсязначения переменных для одногонаблюдения (строчки) из исходного набораданных, включая новые и служебныепеременные.- создание дескриптора (служебной части) длянового набора данных (хранит информацию отипах, названиях переменных, свойства28набора данных и проч.)Шаг DATAЧто происходит после фазы «компиляции»?26 data employees;27set employee_list;28 run;Ошибок в синтаксисе нетНазвания, типы и свойства переменных взяты из исходной таблицы на фазе компиляцииPDV:(в памяти)employees:(на диске)VAR1 VAR2 VAR3 ………Data Set Name…Observations…Member Type…Variables..Engine..Indexes…Created…Observation Length…Last Modified…Deleted Observations…VAR1 (Num)VAR2 (Char)………VAR3 (Num)2) Фаза «выполнения» – выполнение “цикла” внутри шага data.

Однаитерация цикла – это обработка одного наблюдения (строчки)У нас он состоит только из одного оператора SET и неявных операторов,которых мы в программе не видим.Вопрос: Когда этот цикл закончится?29Оператор SET0. Проверка на достижение конца исх. файла1. Явный оператор Set = Чтение одногонаблюдения из Employee_list в PDV2. Неявный оператор Output = сброссодержимого PDV в employees3. Неявный оператор Return = возврат кначалу цикла внутри шага DATA26 data employees;27set employee_list;28 run;employeesData Set Name…Observations…Member Type…Variables..Engine..Indexes…Created…Observation Length…Last Modified…Deleted Observations…VAR1 (Num)Employee_listPDVVAR1 VAR2 VAR3132AAABBBCCC 202201200Data Set Name…Observations…Member Type…Variables..Engine..Indexes…Created…Observation Length…Last Modified…Deleted Observations…VAR2 (Char)VAR3 (Num)VAR1 (Num)VAR2 (Char)VAR3 (Num)1AAA2001AAA2002BBB2012BBB2013CCC2023CCC20230Операторы условного выполненияВыполнение нескольких операторов в одной ветви условного переходана шаге DATA:IF expression THEN do;…;…;end;ELSE do;…;end;Ещё один вариант условного выполнения (аналог switch-case):SELECT<(select-expression)>;WHEN (when-expression-1) statement;<WHEN (when-expression-n) statement;><OTHERWISE statement;>END;31Дополнительные возможности по управлениюна шаге DATA• Не записывать текущий PDV в выходной набор данных и перейти кследующему наблюдению – оператор DELETE, например:IF condition THEN; эквивалентно IF not(condition) THEN DELETE;• Записать текущий PDV в выходной набор данных (если явно не вызывалсяOUTPUT) и перейти к следующему наблюдению – оператор RETURN• Остановить цикл обработки наблюдений – оператор STOP, например:DATA …;…;IF condition THEN RETURN; ELSE STOP;run;• Специальная переменная _N_ - номер итерацииНапример, IF _N_=1 THEN инициализация чего-то;• Специальная опция END= для входного набора данных задает имяпеременной с признаком конца набора, аналогичноset test1(end=mycheck);…;IF mychek THEN действия для последней итерации;32Циклы DOВывести в набор данных целые цифры от 1 до 5 (включительно)1.123456782.

9101112131415163. 1718192021data test;n=0;do until(n>=5);n+1;output;end;run;data test;n=0;do while(n<5);n+1;output;end;run;data test;do n=1 to 5;output;end;run;По умолчанию новая переменнаяинициализируется пропущенным значениемВ данном случае – то же, что n=n+1;Условие проверяется в конце циклаУсловие проверяется в начале циклаА если хочется, можно вообще безциклов:1 data test;2 n=1;3lbl1:4output;5n=n+1;6if n<=5 then go to lbl1;7 run;33Циклы DO• Можно комбинировать to и while или until, например:do i=1 to 10 while (j ne 2)• Можно списки задавать явно перечислением:do i=1,2,5,7,99; или do s=‘1,2’, ’abs’, ‘1e99’;• LEAVE – выход из цикла, CONTINUE – следующая итерация• Можно использовать GOTO для выхода из цикла• Можно менять индексную переменную, например:do i=1,2,5,7,99;if i eq 5 then i=98;put i=;end;Выведет: i=1 i=2 i=98 i=7 i=99, пройдя все итерации, аdo i=1 to 5;if i eq 3 then i=98;put i=;end;Выведет: i=1 i=2 i=98, пройдя три итерации, и выйдя за границы лиапазона34Действия с переменными на шаге DATAИзменение значения переменной (или создание новой переменной):26 data employees;27set employee_list;28if upcase(Country)='US' then Bonus = 500;29else Bonus=0;30 run;При компиляции в оперативной памяти формируется Program DataVector, который содержит место для всех переменных, имеющихсявнутри шага DATA.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее