SAS Proc-Tabulate从多个变量生成汇总统计信息

时间:2015-04-22 23:23:00

标签: sas procedure summary

我有一个人员级别数据集,其中包含三个分类变量V1,V2和V3。我想使用Proc Tabulate来计算上面列出的三个类别的变量X1,X2和X3的平均值,以及人数和V1和V2的百分比(即V3全部时)。 这是我的第一次尝试。

Proc tabulate date = in_data
              Out = out_data;
     Var X1 X2 X3; 
     Class V1 V2 V3;
     Table (V1 all) * (V2 all) * (V3 all), N mean pctn<V1 V2>;
Run;

这给出了错误消息“在以下嵌套V1 * V2 * V3 * Mean中,在没有分析变量的情况下请求了N以外的统计”。我不认为我的语法非常正确。关于如何修复它的任何想法?谢谢。

1 个答案:

答案 0 :(得分:1)

您需要在表语句中包含变量。我认为这应该有效:

Proc tabulate date = in_data
          Out = out_data;
 Var X1 X2 X3; 
 Class V1 V2 V3;
 Table (V1 all) * (V2 all) * (V3 all), (X1 X2 X3)*(N mean);
Run;

这对我有用:

Proc tabulate data = sashelp.class
          Out = out_data;
 Var age weight height; 
 Class sex;
 Table (sex all), (age weight height)*( N mean);
Run;

编辑:

您的问题以某种方式特定于您的数据,您必须包含示例数据或其他正在发生的事情。

这是一个值为0的复制品,摘要中没有任何问题。

data have;
do i=1 to 1000;
v1=rand('bernoulli', 0.4);
v2=rand('bernoulli', 0.7);
x1=rand('uniform')*3+1;
x2=rand('uniform')*9+1;
output;
end;
drop i;
run;

proc print data=have(obs=10);
run;

proc tabulate data=have out=check;
class v1 v2;
var x1 x2;
table (v1 all) (v2 all), (x1 x2)*(n mean);
run;