2015-01-07 2 views
0

Я хотел бы проверить, существует ли набор данных в рабочей библиотеке. Если нет, мне нужно, чтобы импортировать его с локального диска C:\w5Запустите скрипт sas, если не подходит условие

libname yin "C:\w5"; 
data _null_; 
    dsname = "work.base11"; 
    if exist(dsname, "DATA") then 
     put 'data set do exist'; 
    else %include 'C:\testing.sas'; 
run; 

Для testing.sas сценария

libname yin "C:\w5";  
data work.base11; 
    set yin.base11; 
run; 

с ошибкой:

ERROR: Statement is not valid or it is used out of proper order. 

ответ

1

Вещь с SAS является то, что вы не можете писать Proc шаг внутри шага data и наоборот, вот почему вы получаете ошибку, ниже может быть быстрый и простой способ проверить и импортировать.

%macro check_n_import(); 

%if %sysfunc(exist(work.base11)) = 0 %then %do; 
libname yin "C:\w5";  
data work.base11; 
    set yin.base11; 
run; 
%end; 

%mend; 

%check_n_import; 
+0

Hi again @NEOmen, он работает как чемпион. Что делать, если я хочу включить данные instream? – useR

+0

где вы хотите его включить? – NEOmen

+1

внутри do цикл. Кажется, что я могу использовать call execute для выполнения этой задачи. – useR

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