SAS: Как найти набор данных в библиотеке, которая содержит большинство случаев? - PullRequest
0 голосов
/ 18 марта 2019

Поскольку в одной библиотеке содержится много наборов данных.Как я могу использовать код SAS, чтобы узнать, какой набор данных имеет наибольшее количество случаев ?Предположим, имя библиотеки - SASHELP.

Спасибо!

1 Ответ

0 голосов
/ 18 марта 2019

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

Из документов:

Как просматривать таблицы в словаре

СЛОВАРЬ Таблицы и производительность

Когда вы запрашиваете СЛОВАРЬ таблицу, SAS собирает информацию, относящуюся к этой таблице.В зависимости от запрашиваемой таблицы DICTIONARY этот процесс может включать в себя поиск библиотек, открытие таблиц и выполнение представлений SAS.В отличие от других процедур SAS и шага DATA, PROC SQL может улучшить этот процесс, оптимизировав запрос перед запуском процесса выбора.Поэтому, хотя можно получить доступ к информации таблицы DICTIONARY с помощью процедур SAS или шага DATA с помощью представлений SASHELP, зачастую вместо этого лучше использовать PROC SQL.

Примечание: SAS не поддерживает информацию таблицы словаря между запросами.Каждый запрос таблицы DICTIONARY запускает новый процесс обнаружения.

Пример:

* Use dictionary.tables to get the names of the tables with the 10 most rowcount;

proc sql;
  reset outobs=10;

  create table top_10_datasets_by_rowcount as
  select libname, memname, nobs 
  from dictionary.tables
  where libname = 'SASHELP'
    and memtype = 'DATA'
  order by nobs descending
  ;

  reset outobs=max;
...