【问题标题】:SAS Proc Freq display categories with countsSAS Proc Freq 显示类别和计数
【发布时间】:2015-10-23 11:15:04
【问题描述】:

想知道如何在基本 SAS 中完成以下操作。我有以下代码。

libname SASData  '/folders/myfolders/Datafiles';

data chap9ques6;
    set SASData.medical(keep=VisitDate);

    DayOfWeek = weekday(VisitDate);
run;

proc format;
    value Days 1='Sunday' 2='Monday' 3='Tuesday' 4='Wednesday' 5='Thursday' 6='Friday' 7='Saturday';
run;

proc freq data=chap9ques6;
    tables DayOfWeek /nocum nopercent missprint;

    Format DayOfWeek Days.;
run;

这样会产生可接受的结果。

FREQ 过程

DayOfWeek 频率

星期天 1

星期一 1

星期四 1

星期五 1

星期六 2

与示例 SAS 数据一起使用时。我想要的是在列表中包含其他工作日,即使它们没有匹配的行。 “周二 0 周三 0”

如何在最终输出中包含这些行?

【问题讨论】:

  • 如果使用 SAS 格式 DOWNAMEw。格式,您可以跳过创建自己的格式的步骤,以及创建变量“dayofweek”的数据步骤。
  • 谢谢。我会试试的。

标签: sas proc


【解决方案1】:

您可以使用您创建的 DAYS 格式来提供有关您要报告的天数“总体”的信息。 PROC FREQ 不直接支持使用 PROC Summary 或 PROC TABULATE 从无到有的创建。在这个例子中,我使用了带有 WEIGHT 语句和 ZEROS 选项的 PROC Summary 和 PROC FREQ。

data chap9ques6;
   DayOfWeek = 3;
   run;

proc format;
   value Days 1='Sunday' 2='Monday' 3='Tuesday' 4='Wednesday' 5='Thursday' 6='Friday' 7='Saturday';
   run;
proc summary data=chap9ques6 nway completetypes;
   class dayofweek / preloadfmt;
   format dayofweek days.;
   output out=counts;
   run;
proc print;
   run;

proc freq data=counts;
   tables DayOfWeek /nocum nopercent missprint;
   Format DayOfWeek Days.;
   weight _freq_ / zeros;
   run;

【讨论】:

  • 谢谢,这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多