【发布时间】:2015-08-05 01:49:42
【问题描述】:
是否可以创建一个宏变量,将其设置为 proc freq 产生的频率变量?我正在尝试创建一个变量,该变量将等于每个姓氏在数据集中出现的次数。例如,Smithe 可能出现 3 次,而 Jackson 仅出现 2 次。我想抓住那个价值并加以利用。
【问题讨论】:
标签: sas
是否可以创建一个宏变量,将其设置为 proc freq 产生的频率变量?我正在尝试创建一个变量,该变量将等于每个姓氏在数据集中出现的次数。例如,Smithe 可能出现 3 次,而 Jackson 仅出现 2 次。我想抓住那个价值并加以利用。
【问题讨论】:
标签: sas
您可以在以下数据步骤中使用call symput(在将proc freq 输出到具有/out= 和/或使用ods output 的数据集之后),或者您可以避免proc freq 并执行频率通过select into 使用proc sql,这将创建一个宏变量。
proc sql;
select sex, count(1)
into :sex separated by ' ',
:count separated by ' '
from sashelp.class
group by sex;
quit;
这使得某些东西近似于一对宏变量数组(一个带有值,一个带有计数)。如果您想使用名称(或其他名称)作为宏变量名称,请使用第一个选项(使用 call symput 的后续数据步),因为它可以让您命名宏变量。
【讨论】:
count(1),这让我想知道它和count(*)之间是否有区别。我猜不是:stackoverflow.com/questions/1221559/count-vs-count1 .