Какое имя можно присвоить libref sas

Обновлено: 05.07.2024

Я принимаю курс SAS на уровне колледжа. Из того, что я узнал, libref - это имя, в котором вы связываете физическое расположение группы файлов с SAS. Оператор libname создает ссылку на библиотеку (libref) для программы SAS. В общем, основной синтаксис libname:

Другими словами, для того, чтобы SAS мог читать и записывать данные из набора данных, он должен знать каталог или папки, содержащие конкретный набор данных. SAS называет то, что мы, люди называем каталогами или папками, как "библиотеки". SAS также назначает псевдонимы (libref) для этих библиотек и использует оператор libname для присвоения псевдонима определенной папке.

Например, если вы хотите распечатать существующий набор данных SAS, расположенный внутри папки "june", вы можете сделать это:

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

В частности, если вы используете SAS OnDemand для своего обучения (как я полагаю, вы есть), маловероятно, что вы сможете напрямую назначить libname локальным файлам данных. Вам нужно будет предоставить дополнительную информацию о местонахождении/и т.д. из файлов данных, к которым вы пытаетесь получить доступ, чтобы получить лучший ответ, но в целом, если вы используете SAS на сервере (Enterprise Guide - это графический интерфейс, который вы используете для подключения, сам SAS - это процесс, который фактически выполняет частоты/и т.д. и, вероятно, на сервере где-нибудь, в облаке или в ферме серверов вашей компании).

Основная концепция заключается в том, что libname должно быть доступно на машине, на которой запущен экземпляр сервера SAS. Возможно, вы могли настроить свою сеть таким образом, чтобы сервер сопоставил жесткий диск локального компьютера с диском, в большинстве случаев это не так. Если вы находитесь в сети, и у вас есть доступ к сетевому диску, к которому также имеет доступ сервер SAS, вы можете обмениваться информацией таким образом; но если вы используете SAS в облаке (например, для учебных/образовательных целей с SAS OnDemand), вы, вероятно, не можете получить доступ к общим дискам.

Chris Hemedinger (один из людей SAS, который работал на EG) написал пользовательскую задачу, доступную по этой ссылке, чтобы скопировать файлы с локального рабочего стола на удаленный сервер. Это может быть не полезно для SAS OnDemand, так как я думаю, что они не позволяют копировать файлы.

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

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




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

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

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

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

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

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

1 способ:

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


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


Имя библиотеки – 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 UE.


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.

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

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


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

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


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


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

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


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


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

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


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

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


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

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

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

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


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


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


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


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


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



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


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


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



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


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


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


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

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

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


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


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

    Не включайте переменные Change и Retain в отчет:


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


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


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


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


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


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

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


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


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

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

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


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

1 вариант


2 вариант

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

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


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

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

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

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

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


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


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


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

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

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


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

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

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

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


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

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

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

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


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



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


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

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

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

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


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



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

2 ответа

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

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

Например, если вы хотите распечатать существующий набор данных SAS, расположенный внутри папки «june», вы можете сделать это:

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

В частности, если вы используете SAS OnDemand для обучения (как я предполагаю), маловероятно, что вы сможете напрямую назначить имя библиотеки своим локальным файлам данных. Вам нужно будет предоставить дополнительную информацию о местонахождении / и т. Д. файлов данных, к которым вы пытаетесь получить доступ, чтобы получить лучший ответ, но в целом, если вы используете SAS на сервере (Enterprise Guide - это графический интерфейс, который вы используете для подключения, сам SAS - это процесс, который фактически выполняет частоты / и т. д. и, скорее всего, где-то на сервере, в облаке или на серверной ферме вашей компании).

Ключевой концепцией является то, что имя библиотеки должно быть доступно на машине, на которой запущен экземпляр сервера SAS. Хотя возможно, что вы настроили свою сеть так, что сервер сопоставил жесткий диск вашей локальной машины с диском, в большинстве случаев это не так. Если вы находитесь в сети и имеете доступ к сетевому диску, к которому также имеет доступ сервер SAS, вы можете обмениваться информацией таким образом; но если вы используете SAS в облаке (например, в учебных / образовательных целях с SAS OnDemand), вы, вероятно, не сможете получить доступ к общим дискам.

Крис Хемедингер (один из сотрудников SAS, который работал над EG) написал специальную задачу, доступную по адресу эта ссылка, чтобы помочь скопировать файлы с локального рабочего стола на удаленный сервер. Это может быть бесполезно с SAS OnDemand, поскольку я думаю, что они не позволяют копировать файлы.

Логическая библиотека SAS
Логическая библиотека SAS - это коллекция файлов SAS.
Если логическая библиотека SAS рассматривается как блок в картотеке, то набор данных SAS является одной из многих папок в блоке.

Справочное имя библиотеки логики (libref)
work - это временная библиотека SAS. Если мы напрямую создаем набор данных без записи libref, по умолчанию создается временный набор данных. В настоящее время соответствующей логической библиотекой является Work Библиотека
В SAS также есть постоянная библиотека под названием sasuser, конечно, мы также можем создать нашу собственную библиотеку логики,

LIBNAME libref “SAS-data-library”
1
libname orion “s:\workshop”;
1
где orion - это имя логической библиотеки, а "s: \ workshop" - это физическое местоположение в базе данных SAS.

В этой логической библиотеке, которую мы создали сами, каждый файл SAS имеет имя второго уровня.

Набор данных orion.sales является файлом SAS логической библиотеки orion.
Имя первого уровня: libref направляет в библиотеку логики;
Имя второго уровня: руководство по файлу в библиотеке логики;

Примечания SAS
/* comment */

*comment
1
2
3
значение переменной SAS
Типы значений переменных: делятся на числовые и символьные переменные

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

Просмотрите раздел данных
proc print data = имя набора данных + переменная для просмотра;
run;
1
2
Часть данных просмотра и часть описания просмотра различаются, обратите внимание на отдельные

PROC PRINT DATA=SAS-data-set NOOBS;
VAR variable(s);
RUN;
1
2
3
Параметр NOOBS удаляет последовательность наблюдений в левой части отчета, которая является столбцом obs
Оператор Var выбирает переменные и порядок, отображаемые в отчете.

По умолчанию proc print отображает следующее:
Все наблюдения, все переменные и столбец Obs добавлены слева, аналогично нумерованному классу, который, я думаю, называется классом наблюдения.

Читать набор данных
структура содержимого
Введение в чтение данных
Обработка набора данных SAS
читать в листе Excel
читать исходный файл данных с разделителями
доступ к реляционной базе данных

Содержание этого раздела является первым этапом обработки данных, который касается данных. Наши источники данных разделены на три ситуации: первая - это исходный набор данных SAS, а вторая - данные Excel. Третий - это исходные данные с разделителями, то есть данные CSV.

Читать в наборе данных SAS
LIBNAME libref ‘SAS-data-library’;
DATA output-SAS-data-set;
SET input-SAS-data-set;
WHERE where-expression;
KEEP variable-list;
LABEL variable = ‘label’
variable = ‘label’
variable = ‘label’;
FORMAT variable(s) format;
RUN;
1
2
3
4
5
6
7
8
9
10
data work.subset1;
set orion.sales;
where Country=‘AU’ and
Job_Title contains ‘Rep’;
keep First_Name Last_Name Salary
Job_Title Hire_Date;
label Job_Title=‘Sales Title’
Hire_Date=‘Date Hired’;
format Salary commax8. Hire_Date ddmmyy10.;
run
1
2
3
4
5
6
7
8
9
10
Позвольте мне объяснить этот код, сначала объясните несколько предложений.

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

libname orion ‘s:\workshop’;
1
2
Вот набор данных SAS.

Орион здесь это имя логической библиотеки,
«s: \ workshop»; это физическое местоположение базы данных SAS.

libname orionxls ‘s:\workshop\sales.xls’;
1
где orionxls - это имя логической библиотеки,

«S: \ workshop \ sales.xls»; относится к физическому имени файла на листе Excel, включая путь, имя файла и расширение.

data
Набор данных - это набор данных, который вы создали для помещения в SAS, то есть набор данных, в который вы хотите поместить прочитанные данные.

Вопрос: Какова связь между набором данных, который будет выводиться на шаг процесса, и набором данных, который вы в конечном итоге будете выводить?

Это набор данных, который вы хотите вывести на шаг процесса

DATA output-SAS-data-set
1
Видно, что данные - это набор данных, созданный для вывода.

После добавления данных название вашего набора данных. Например, приведенный выше код означает, что вы создали набор данных с именем work.subset1.

where
где находится в шаге данных, основная функция

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

SET input-SAS-data-set;
1
Приведенное выше может быть установлено для чтения операции набора данных. По умолчанию все наблюдения и переменные считываются, и оператор set может читать временные или постоянные наборы данных.

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

libname orion ‘s:\workshop’;
data work.subset1;
set orion.sales;
run;
1
2
3
4
Это относится к созданию временного набора данных SAS с именем Work.subset1 из постоянного набора данных SAS с именем orion.sales.

Затем введите операторы, которые можно добавить на шаге данных.
where
Общее выражение:

ГДЕ где-выражение;
1
оператор сравнения
арифметический оператор
логический оператор

содержит содержит подстроки
как сравнение
различают эти два

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

DROP variable-list;
1
Оператор keep - это имя переменной, которая задает набор данных для записи

KEEP variable-list;
1
keep First_Name Last_Name
Salary Job_Title
Hire_Date;
1
2
3
Проблема: оператор, используемый для чтения исходного файла данных с разделителями, является вводом, предыдущий оператор устанавливается, поэтому, когда читаются отформатированные файлы, вы не можете использовать set, верно? Только очень стандартные файлы могут быть прочитаны с помощью набора

Добавить постоянные атрибуты: метка и формат
Часть описания набора данных SAS содержит атрибуты переменных, включая имя, тип (символьное или числовое значение) и длину переменной. (Эти три атрибута являются неотъемлемо необходимыми значениями)

Оператор метки присваивает метку описания имени переменной

label Job_Title=‘Sales Title’
Hire_Date=‘Date Hired’;
1
2
Это относится к добавлению тега «Название продаж» к заголовку Job_Title во входном наборе данных.
Hire_Date добавляет тег «Дата найма»

Используйте оператор метки в шаге данных, чтобы сохранить метку в части описания набора данных sas, чтобы метка и переменная были постоянно связаны

PS: Если вы хотите, чтобы метка отображалась в наборе выходных данных, вам нужно добавить инструкцию метки после набора proc print + data.

Оператор формата присваивает формат значению переменной

FORMAT variable(s) format;
1
Формат - это команда, используемая SAS для записи данных.

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

Особое внимание следует уделить числовому формату и формату даты.

format Salary commax8. Hire_Date ddmmyy10.
1
Указывается, что формат переменной оклада - commax8, а формат переменной Hire_Date - ddmmyy10.

За исключением того, что Zw.d использует 0 вместо пробелов для заполнения выровненного по правому краю вывода, формат Zw.d
аналогичен формату w.d.

Метки и форматы также могут быть сохранены в разделе дескриптора

Оператор set считывает наблюдения из набора данных SAS и обрабатывает их далее на этапе DATA.
Оператор ввода описывает числовое расположение в исходном файле данных и назначает входное значение соответствующему файлу sas,

Выход в SAS один за другим или однократный выход?

Читать данные Excel
Оператор SAS / ACCESS LIBNAME
Логическое имя библиотеки (libref) назначается на лист Microsoft Excel

libname orionxls ‘s:\workshop\sales.xls’;
1
Этот оператор позволяет напрямую ссылаться на работу в шаге DATA или в программе SAS.
, прочитайте и запишите на лист Microsoft Excel, как если бы это было
Набор данных SAS.

Каждый лист в книге Excel рассматривается как набор данных SAS

libname orionxls ‘s:\workshop\sales.xls’;
data work.subset2;
set orionxls.'Australia$'n;
where Job_Title contains ‘Rep’;
keep First_Name Last_Name Salary
Job_Title Hire_Date;
label Job_Title=‘Sales Title’
Hire_Date=‘Date Hired’;
format Salary comma10. Hire_Date weekdate.;
run;
1
2
3
4
5
6
7
8
9
10
Если SAS назначит логическое имя библиотеки для листа Excel, этот лист не будет открыт в Excel. Чтобы отменить логическую библиотеку, используйте оператор libname и укажите имя библиотеки и опцию очистки.

libname orionxls clear;
1
Создание листа Excel из набора данных SAS: данные или копия
data

libname orionxls
‘s:\workshop\qtr2007a.xls’;
data orionxls.qtr1_2007;
set orion.qtr1_2007;
run;
1
2
3
4
5
Создать лист Excel с копией

libname orionxls
‘s:\workshop\qtr2007b.xls’;
proc copy in=orion out=orionxls;
select qtr1_2007 qtr2_2007;
run;
proc contents data=orionxls.all;
run;
libname orionxls clear;
1
2
3
4
5
6
7
8
Обратите внимание на обработку части формата, считанной на входе, и обработку формата части формата. (Есть ли разница между двумя?)

PS: обратите внимание, что оператор where нельзя использовать для выбора записей из файла необработанных данных, но можно использовать только для выбора частичных наблюдений из набора входных данных.

Импортируйте лист Excel с помощью мастера и программы импорта и создайте лист Excel с помощью мастера и программы экспорта
Чтение исходных данных с разделителями (это данные csv?)
Этот раздел в основном рассказывает о том, как читать исходные данные с разделителями. Исходные данные с разделителями делятся на два типа, один из них - чтение стандартных данных с разделителями; Одним из них является чтение нестандартных данных с разделителями. Давайте посмотрим на разницу и связь между ними до

Различают стандартные данные и нестандартные данные

Читать стандартные данные с разделителями
DATA output-SAS-data-set;
LENGTH variable(s) $ length;
INFILE ‘raw-data-file-name’;
INPUT specifications;
KEEP variable-list;
LABEL variable = ‘label’
variable = ‘label’
variable = ‘label’;
FORMAT variable(s) format;
RUN;
1
2
3
4
5
6
7
8
9
10
infile
Оператор infile используется для определения физического имени исходного файла данных, чтобы его можно было легко прочитать с помощью оператора ввода. (Физическое имя относится к имени, используемому средой операционной системы для доступа к этому файлу, поэтому я до сих пор не понимаю, относится ли это имя к папке на определенном диске)

infile ‘s:\workshop\sales.csv’;
1
input
Оператор ввода описывает расположение значений в исходном файле данных, и входное значение выплачивается соответствующей переменной sas.

DATA output-SAS-data-set;
INFILE ‘raw-data-file-name’;
INPUT specifications;

RUN;
1
2
3
4
5
Здесь есть разница между оператором ввода и оператором set. Есть еще одна проблема. Вышеприведенный оператор Excel является внешним оператором.

Разделитель
Пробел (пробел) является разделителем по умолчанию, если вы хотите указать другие разделители, используйте опцию DLM =, чтобы указать

DATA output-SAS-data-set;
INFILE ‘raw-data-file-name’ DLM=‘delimiter’;
INPUT specifications;

RUN;
1
2
3
4
5
Список ввода стандартных данных
INPUT variable <$>;
1
2
Переменные должны быть расположены слева направо в порядке их появления в исходном файле данных.

data work.subset3;
infile ‘sales.csv’ dlm=’,’;
input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $;
run;
1
2
3
4
5
Список ввода нестандартных данных
Формат ввода списка следующий:

INPUT variable <$> variable < :informat >;
1
: модификаторы позволяют читать нестандартные данные с разделителями в формате ввода

input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $
Birth_Date :date.
Hire_Date :mmddyy.;
1
2
3
4
дополнительные операторы SAS
Этот дополнительный оператор sas включает где / keep / drop / format
фактически похож на часть обработки чтения набора данных sas

Читайте также: