SAS Proc Tabulate可从多个变量中生成摘要统计信息



我有一个个人级数据集,包含三个分类变量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以外的统计信息"。我觉得我的语法不太正确。有什么想法可以帮我解决吗?谢谢

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

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;

最新更新