SAS proc制表(频率)

时间:2019-08-27 08:31:23

标签: sas tabulate

我有以下问题:

一些示例数据:

data;
input id article sex count;
datalines;
1 139 1 2
2 139 2 2
3 146 2 1
4 146 2 2
5 146 1 0
6 111 2 10
6 111 1 1
;
run;

现在,我有以下代码:

proc tabulate;
freq count;
class article sex;
table article, sex /misstext='0';
run;

与以下代码相比有什么区别吗?

proc tabulate;
var count;
class article sex;
table article, sex*count;
run;

还是完全一样?推荐哪一个?

1 个答案:

答案 0 :(得分:2)

注意两个tabulate变体的运行所产生的输出。

enter image description here

对于手头的数据集,结果是相同的,呈现方式有所不同。

  • 第一个具有性类单元格,它们是N加权的隐式频率(count)计算,也隐式格式为整数。 隐式是没有其他语句和选项的默认行为。
  • 第二个具有性别类单元格,它们是count的计算总和,其格式默认为2个小数位。

如果数据集包含var中使用的其他table变量,则要执行的统计计算以及权重的作用将取决于您所进行的演示的性质和受众的消费它。您可能想要或不希望“计数”频率加权影响统计计算。

请5个人推荐,您可能会得到6 !!

从在线文档中,将FREQ语句的详细信息与WEIGHT语句进行比较:

  

FREQ variable;

     

必需参数

     

变量

     
      
  • 指定一个数字变量,其值表示观察的频率。如果使用FREQ语句,则该过程假定每个观察值表示n个观察值,其中n是变量的值。如果n不是整数,则SAS将其截断。如果n小于1或丢失,则该过程不使用该观察值来计算统计量。
  •   
  • 频率变量的总和表示观测的总数。
  •   

  

WEIGHT variable;

     

必需参数

     

变量

     
      
  • 指定一个数值变量,其值加权分析变量的值。变量的值不必是整数。 PROC TABULATE响应下表中的重量值。
      0:将观察值计入观察总数
  •   
  • <0:将值转换为零,并将观察值计入观察总数中
  •   
  • .missing:排除观察
  •   
     

要从分析中排除包含负权重和零权重的观测值,请使用EXCLNPWGT。请注意,默认情况下,大多数SAS / STAT过程(例如PROC GLM)不包括负权重和零权重。

     

注意::在SAS版本7之前,该程序并未从观察值计数中排除权重缺失的观察值。

     

限制

     
      
  • 要计算加权分位数,请在PROC语句中使用QMETHOD = OS。
  •   当重量变量处于活动状态时,
  • PROC TABULATE将不会计算MODE。相反,当需要计算MODE并且权重变量处于活动状态时,请尝试使用PROC UNIVARIATE。
  •   
     

互动

     
      
  • 如果在VAR语句中使用WEIGHT =选项来指定权重变量,则PROC TABULATE会使用该变量来加权那些VAR语句变量。
  •   
     

提示

     
      
  • 使用WEIGHT语句时,请考虑使用VARDEF =选项的哪个值合适。请参阅本文档“关键字和公式”部分中有关VARDEF =除数的讨论以及加权统计的计算。
  •