是否可以创建一个宏变量,该变量设置为proc freq生成的频率变量?我正在尝试创建一个变量,该变量将等于每个姓氏出现在数据集中的次数。例如,Smithe可能会出现3次,而Jackson只出现2次。我希望捕获该值并使用它。
答案 0 :(得分:3)
您可以在以下数据步骤中使用call symput
(使用proc freq
和/或使用/out=
将ods output
输出到数据集后),或者您可以避免proc freq
并通过proc sql
通过select into
执行频率,这将创建一个宏变量。
proc sql;
select sex, count(1)
into :sex separated by ' ',
:count separated by ' '
from sashelp.class
group by sex;
quit;
这使得近似于一对宏变量数组的东西(一个具有值为1的值)。如果要使用名称(或其他)作为宏变量名称,请使用第一个选项(后跟带有call symput
的datastep),因为这样可以命名宏变量。