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

SAS BASE. Программирование на языке SAS BASE. Основы (Лекции 2013)

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

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

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

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

Текст из PDF

Программирование на языкеSAS BASEЛекция 1. Основы.Звежинский Дмитрий,SAS Russia/CISdmitry.zvezhinsky@sas.comЗамечания об ошибках и опечатках просьба направлять лектору.1Где взять эти лекции?И примеры программ?• http://tiny.cc/msu_sas2SAS Enterprise guide••••Интерфейс для визуальногопрограммирования (в томчисле через SAS on-demand)Но мы будем в немпрограммировать вручную(т.е. с помощью кода наязыке SAS)Enterprise Guide невыполняет код – онотправляет его длявыполнения на сервер, гдестоит дистрибутив SASВ Enterprise Guideвозвращается результатвыполнения программы(например, отчет) илижурнал с отладочнойинформацией (например,ошибками).Инструкции по установке SAS Enterprise guide (вверсии on-demand) были даны ранее.3Как написать программу?• Проект с программой сохраняется навашем компьютере• Данные хранятся на удаленномсервере (можно загружать и создаватьсвои).• Можно сделать несколькоотдельных программ(изображается в виде значка сбегущим человечком) и запускатьих по отдельности () иливместе ().SAS on-demand настроен для работы с кодировкой UTF:Будьте аккуратны при работе с многобайтовыми кодировками!4Журнал выполнения (Log)• Log – средство для отладки и диагностики выполнения программы.Работает для всех процедур SAS.• Выводит текст запущенной программы и ошибки (если есть).

Ошибкиподробно описаны, иногда даются предложения по исправлению.• Даже если ошибок сразу не видно, рекомендуется вдумчиво изучитьLog.5Введение. Обзор языка SAS BASEСтруктура программы на языке SAS BASEСозданиеотчетаДанные(наборыданных SAS,сторонниеформаты)Шаг DATA(преобразование данных)Наборданных SASШаг PROCСозданиенабораданных SAS(длядальнейшегоанализа)• Линейная структура программы. Нет циклов, операторов условного перехода.• Разные части программы обмениваются друг с другом данными в виде наборовданных SAS. Эти части практически не связаны друг с другом.• Основная структура данных – набор данных (SAS data set). Все данные лежат нажестком диске в виде файлов.

Поэтому данных может быть очень много!• Нет инкапсуляции (в смысле сокрытия реализации кода за интерфейсом)• Только две (!) основные синтаксические конструкции:• Шаг DATA (работа с данными – создание, чтение, добавление, изменение)• Шаг PROC – всё остальное• Исторически основная цель программы – создание отчета (описание или анализ6исходных данных) или запроса к данным (получение «среза» данных).Наборы данных SAS (datasets)• Наборы данных – обычные «плоские» таблицы• Переменные (столбцы) – одного из двух типов(числовые)или текстовые ()• Для хранения чисел отводится 8 байт. Дляхранения текста – от 1 до 32767 байт.• Названия переменных – до 32 символов: _ a-z 0-9• Регистр в названии переменной не важен• Нельзя начинать название переменной с цифрыИменно наборы данных SAS (либо данные, которыепредставляются в этом виде) обязаны подаваться навход процедур (шаг proc)Каждый столбец имеет набор атрибутов (правый клик мышью на заголовок – >properties), среди них: length (макс.

кол-во байт, которые можно хранить в этойпеременной для каждого наблюдения), name (название), label (ярлык, текстовоеполе, где можно хранить более подробное описание переменной), type (тип),format (формат – правило для отображения данных в отчет или на экран)Для работы с данными в формате SAS dataset можно применять большой наборсобственных алгоритмов, а также стандартный язык запросов (SQL)7Наборы данных SAS (продолжение)• Наборы данных – обычные файлы (*.sas7bdat)• Можно прозрачным образом подключать данные практическив любом виде (от excel/access до промышленных баз данных)через набор механизмов (engines).• Импорт данных из большинства популярных форматов (file>import data)• Можно создавать и редактировать прямо в Enterprise guide (file>new->data)• Встроенный механизм для многопользовательского доступа (начтение, с доступом на запись – нужно разбираться отдельно)• SAS – это НЕ движок для базы данных (не гарантируеттранзакционную целостность) и НЕ менеджер для организациихранения данных (разделение доступа, аудит данных и проч.),хотя некоторые возможности для этих целей у него имеются.8Библиотеки• Возникли как подход к централизованному хранению ипрозрачному использованию данных в программах SASСамый простой случай библиотеки –это наборы данных, находящиеся водной директории.При запуске SAS сразу имеетсянесколько служебных библиотек,временная библиотека Work (онабудет очищена при отключении отсервера или завершении процессаsas.exe) и персональная библиотекаSasuser (данные хранятся постоянно).В качестве библиотек можно подключать данные, которые физически находятсяне в формате наборов данных SAS (промышленные БД, excel, access).

Длябольшей части вашей программы будет всё равно, как (и где) данные хранятся.9Подключение библиотеки в on-demand1. Подключиться ксерверу SASApp2. Подключить (Assign)нужную библиотеку10Создание библиотек•••Подключение библиотеки производится:– либо через «wizard» (Tools->assign project library) – ф.с. на сервере– либо программным путём (оператор libname):Нельзя в on-demandlibname mylib ‘c:\dir_with_data‘;mylib - название библиотеки: 0-9, a-z, _, не может начинаться сцифры, не более 8 символов длинойПодключенная таким образом библиотека «живет» до завершенияпроцесса sas.exe (для Guide - до отключения от сервера)Теперь в программе можно обращаться к набору данных не указываяполный путь (c:\dir_with_data\testdataset.sas7bdat), а с помощью 2-хуровневого имени (которое записывается через точку):.testdatasetmylibЕсли первая часть не указана – предполагается библиотека WorkСодержимое библиотеки можно посмотреть в окне «Server list», или спомощью процедуры:proc contents data=sasuser._all_;run;111234567891011121314151617Программа на языке 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;12Программа на языке SAS Base• Программа не требует явного подключения «библиотек» спроцедурами, которые есть в установленномдистрибутиве SAS («#include»)• Программа выполняется «сверху вниз» по шагам• Минимальный «кусочек» программы, который SAS можетвыполнить, это один шаг (начинается с операторов «data»,«proc»)• Можно выполнить один или несколько шагов программы(выделить код мышкой и нажать кнопку RUN)• Каждый оператор должен заканчиваться «;»• Каждый шаг должен заканчиваться операторами «run;»,«quit;», или началом следующего шага• Форматирование свободное (программу можно записатьв одну строку, оператор можно разбивать на несколькострок)13Справка• Справка в свободном доступе (веб-интерфейс либо pdf)http://support.sas.com/documentation1) Поиск справки по элементам языкаSAS BASE нужно начинать сописания интересующейпроцедуры (и уже в ней искатьсправку о конкретном операторе)2) Пункт overview – общие слова отом, что может делать процедура(шаг PROC)3) Пункт examples – для самыхнетерпеливых4) Дополнительные материалы*) Материалы конференции SUGI (обмен опытом между пользователями)*) Справки по конкретным продуктам SASРекомендуется иметь под рукой:SAS/STAT(R) 9.3 User's GuideSAS(R) 9.3 Functions and CALL Routines: ReferenceBase SAS(R) 9.3 Procedures Guide, Second EditionSAS(R) 9.3 SQL Procedure User's Guide14…Шаг 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 StepConcepts– SAS(R) 9.3 Language Reference: Concepts, Second Edition -> Dictionary ofLanguage Elements -> SAS Data Set Options15Шаг DATAСамая простая операция – создание копии набора данных:26 data employees;новый набор данных27set employee_list;исходный набор данных28 run;Что происходит при запуске такого шага?(см. Overview of DATA Step Processing: Flow ofAction)1) Фаза «компиляции»:- проверка синтаксиса- создание вектора данных (PDV) – области впамяти, где хранятся значения переменныхдля одного наблюдения (строчки) изисходного набора данных, включая новые ислужебные переменные.- создание дескриптора (служебной части) длянового набора данных (хранит информацию отипах, названиях переменных, свойстванабора данных и проч.)16Шаг 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 и неявных операторов,которых мы в программе не видим.Вопрос: Когда этот цикл закончится?17Оператор 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)1AAA2001AAA2002BBB2012BBB2013CCC2023CCC20218Выбор наблюдений по условию26 data employees;27set employee_list;28where age <= 65 and29 run;upcase(gender) = "M" ;Symbol MnemonicEquivalentSymbol MnemonicEquivalent=EQ&AND^=NE|OR¬=NE!OR~=NE¦OR¬NOTˆNOT~NOT>GT<LT>=GE<=LEINЗамечания:1.

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