Я пытаюсь составить программу, чтобы дать мне возможность практиковаться для сдачи экзамена SAS; Я хочу перечислить переменные во всех наборах данных, а также тип переменной;
libname printlib '...';
libname proclib '...';
proc datasets library=proclib memtype=data nolist;
copy out=printlib;
select delay internat;
run;
%macro printall(libname, worklib=work);
%local num i;
proc datasets library=&libname memtype=data nodetails;
contents out=&worklib..temp1(keep=memname) data=_all_ noprint;
run;
data _null_;
set &worklib..temp1 end=final;
by memname notsorted;
if last.memname;
n+1;
call symput('ds'||left(put(n, 8.)), trim(memname));
if final then
call symput('num', put(n, 8.));
run;
%do i=1 %to #
data work.data;
set &libname..&&ds&i;
var_type=vtype(name);
run;
proc contents data=work.data noprint out=data_info (keep=name varnum var_type);
run;
proc sort data=data_info out=variable_names(keep=name var_type);
by varnum;
run;
proc print data=work.variable_names;
title &libname..&&ds&i;
run;
%end;
%mend printall;
options nodate pageno=1 linesize=70 pagesize=60;
%printall(printlib)
Результаты должны отображать заголовок, который является именем набора данных, первый столбец должен быть именем переменной, а второй столбец должен быть типом переменной (символьной или числовой)
Сейчас он показывает заголовок и имена переменных; но не тип переменной. Я не совсем уверен, как заставить тип переменной отображаться рядом с именем переменной.