Pro c содержимое перебирает имена таблиц из другого набора данных - PullRequest
0 голосов
/ 04 мая 2020

Я новичок ie в SAS и пытаюсь выполнить приведенный ниже код, чтобы получить всю информацию для конкретной библиотеки. Однако между ними происходит сбой из-за данных в конкретном наборе данных. Есть ли способ прочитать имена наборов данных из другого набора данных и через них l oop создать различный набор данных, специфицирующий c для каждого имени набора данных из списка?

Proc contents data= testlib. _ALL_  out=x;
Run;

Вместо этого я хочу что-то вроде этого

Proc contents data in (work. Tbnames) out = x;
 Run;

И читать данные из набора данных ниже.

Data tbnames(keep tablename) ;
 Set WORK. tablenames;
 Run;

Пожалуйста, помогите St

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

Используйте Proc COPY для копирования наборов данных из одной библиотеки в другую.

libname testlib '<os-path-to-folder>';

proc copy in=testlib out=work memtype=DATA;
run;
0 голосов
/ 04 мая 2020

Считайте данные из словаря словаря. Предполагается, что у вас есть список таблиц в наборе данных с именем tableNames и переменная с именем tName, которая является именем переменной. Обратите внимание, что это регистрозависимое сравнение, поэтому UPCASE() используется для прописных букв.

proc sql;
create table summary as 
select *
from dictionary.table
where memname in (select upcase(tName) from tableNames);
quit;

Или посмотрите на PRO C DATASETS, который работает с библиотекой, а не с одним набором данных.

proc datasets lib=myLib;
run;quit;
0 голосов
/ 04 мая 2020
Proc contents data = work.Tbnames out = x;
Run;
...