2.1 SAS библиотеки, Libname statement, Proc copy

SAS библиотеки, Libname statement

Давайте рассмотрим следующий отрывок кода:

data test;
    subjid=”001”;
    age=25;
run;

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

data work.test;
    subjid=”001”;
    age=25;
run;

Когда вы закроете текущую сессию, все, что хранится в библиотеке Work, исчезнет. Естественно, что нам хотелось бы сохранить какие-то data sets для того, чтобы иметь возможность использовать их в дальнейшем. Для этого нам необходимо использовать LIBNAME statement и создать свою собственную библиотеку.

libname student ‘d:\SAS_learning\student’;

data student.test;
    subjid=”001”;
    age=25;
run;

libname – keyword

student – название нашей библиотеки (название должно быть валидным SAS именем и содержать не более 8 символов)

‘d:\SAS_learning\student’ – директория, где мы хотим сохранять наши data sets. Как вы могли заметить, название библиотеки и директории совпадают. Это вовсе не обязательно, однако, как показывает практика, очень удобно.

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

Аналогично библиотеке student, давайте создадим библиотеки rawdata и data. В первой, rawdata, мы будем хранить так называемые raw данные, т.е. сырые, необработанные данные. Это могут быть data sets либо другие файлы (csv, txt etc.). Во второй, data, мы будем хранить результаты нашей работы

Proc copy

Часто бывает так, что data set, который хранится в постоянной директории, удобно скопировать в рабочую директорию Work, чтобы он был «под рукой». Это можно проделать с помощью процедуры proc copy.

proc copy in=student out=work memtype=data;
    select test;
run;

proc copy – keyword

in=student – указываем библиотеку, откуда хотим скопировать data set

out=work – указываем библиотеку, куда хотим скопировать data set

memtype=data – указываем, что копировать будем только data sets

Дополнительные материалы: