2014-02-24 4 views
1

Я новичок в SAS, и я пытаюсь декодировать код SAS. В начале сценария коды есть строка, которая говорит -Функция Libref в SAS

%let sales=sale_q; 
%if (%sysfunc(libref(sales))) %then %do; 
    libname sales "/data/raw/sales/sales_a"; 

У меня есть три файла данные - sales_q для квартальных продаж, sales_a для ежегодных продаж и sales_m для ежемесячных продаж.

Мой код устанавливает продажи библиотеки для использования квартальных данных о продажах. Что делает оператор% if? Я искал функцию libref и выяснил, что она просто проверяет существование имени пути к библиотеке. Но я не понимаю необходимости использовать оператор IF.

Спасибо за помощь!

+1

-1: Это вопрос с RTFM. –

ответ

2

Документация SAS - ваш друг.

Простой google search привел меня к LIBREF Function page of the SAS documentation

Он описывает LIBREF функцию:

определяет libref быть проверена. На этапе DATA libref может быть символьным выражением , строкой, заключенной в кавычки, или переменной DATA , значение которой содержит libref. В макросе, libref может быть любое выражение

Функция LIBREF возвращает 0, если libref был назначен, или возвращает ненулевое значение, если libref не был назначен.

Таким образом, чтобы ответить на ваш вопрос, The %if оператор проверяет, если sales был назначен в качестве ссылки библиотеки или нет. Если не %then %do часть назначит "/data/raw/sales/sales_a" до sales.

+0

Спасибо! Это помогает. Я просмотрел документацию SAS по этой функции, но я не был уверен, правильно ли я понял. Мне нужно чье-то подтверждение о том, как это работает. Благодаря – RHelp

0

libref указывает на конкретный «физический» путь и может быть назначен и не назначен.

Libref также может быть, например, электронной таблицей Excel, и в этом случае важными являются присвоение и unssigning librefs.

Смежные вопросы