存储 PROC FREQ 生成的值

时间:2021-05-19 14:29:17

标签: sas

PROC Freq 函数生成一个包含百分比和变量频率的频率表。有没有办法存储变量的百分比以备后用(比如使用这个值来创建数据集、创建图表)?

2 个答案:

答案 0 :(得分:0)

ODS OUTPUT 是您随时想要获取 PROC 结果的朋友。许多 procs,包括 PROC FREQ,也有内置的输出选项,但通用的是 ODS OUTPUT

首先,使用 ODS TRACE 来标识您需要的表的(SAS 内部)名称。

ods trace on;
proc freq data=sashelp.class;
tables age;
run;
ods trace off;

这会产生:

Output Added:
 -------------
 Name:       OneWayFreqs
 Label:      One-Way Frequencies
 Template:   Base.Freq.OneWayFreqs
 Path:       Freq.Table1.OneWayFreqs
 -------------

现在您可以将其与 ods output 一起使用:

ods output OneWayFreqs=myfreqdata;
proc freq data=sashelp.class;
tables age;
run;
ods output close;   *this is technically not needed, but I like to have it for clarity;

它将创建一个名为 myfreqdata 的表(请说出有用的东西!)。它并不总是“漂亮”;有时您最好在 proc 中使用内置输出选项,因为它们的格式更有用,但通常您可以从中获得一些东西。

答案 1 :(得分:0)

下午好,

听起来您想将 PROC FREQ 的结果输出到 SAS 数据集。这将允许您以后使用它们,无论是用于进一步分析还是可视化。为此,只需将数据集名称传递给 out= 语句后的 table 选项。您会在下面注意到我还使用了 noprint 选项。这避免了不必要的打印表格。

例如

proc freq data=work.dataset noprint;
    table var1*var2 / out=work.output_data;
run;

我希望这会有所帮助!