#sas #frequency
#sas #частота
Вопрос:
Я пытаюсь использовать все имена переменных в списке переменных (varlistc) внутри proc freq. Однако PROC FREQ предоставлял вывод только для последнего имени переменной в varlistc. Как я могу это исправить?
proc sql noprint;
select name
into :varlistc separated by ' '
from data2c;
quit;
proc freq data=amp;data1;
table amp;varlistc*site;
run;
Ответ №1:
Просто для справки, PROC FREQ также обеспечивает более четкий синтаксис:
каждая переменная из списка в первых скобках перекрестно применяется к переменной (или списку переменных в других скобках) после звездочки.
proc sql noprint;
select name
into :varlistc separated by ' '
from sashelp.class;
quit;
proc freq data=amp;data1;
table ( amp;varlistc ) * site;
run;
Может быть также, например:
proc freq data=amp;data1;
table ( amp;varlistc ) * (site1 site2);
run;
Комментарии:
1. Интересно, никогда не осознавал этого!
2. Привет, переменная макроса отображает только одну переменную, а не все. Я использую следующий код.
3. proc sql noprint; выберите имя в:varlist из словаря.столбцы, где memname = ‘RD_1174’; выход; proc freq data=prof.rd_1174 ORDER=freq; таблица и varlist; выполнить;
Ответ №2:
Добавьте больше в свою макропеременную, чтобы заставить ее работать должным образом.
proc sql noprint;
select cats(name,'*site')
into :varlistc separated by ' '
from data2c;
quit;
proc freq data=amp;data1;
table amp;varlistc;
run;
Это приведет к созданию всех таблиц на экране. Если вы хотите вывести их в набор данных, если вы добавите a /out
, который не будет выводиться, кроме последней таблицы; у вас есть два варианта.
- Используется
ods output
для получения всех выходных данных в один или несколько наборов данных - Включить
/out=<whatever>
в свойselect into
.