2015-04-22 136 views
0

我有一个人级数据集,包含三个分类变量V1,V2和V3。我想用Proc Tabulate通过上面列出的三个类别来计算变量X1,X2和X3的平均值,以及人数和V1和V2之外的百分比(即V3全部)。 这是我第一次尝试。SAS Proc-Tabulate生成来自多个变量的汇总统计

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; 

这给我的错误消息“N以外统计不加分析变量被要求在后面的嵌套V1 V2 * * * V3中庸”。我认为我的语法不太对。关于如何修复它的任何想法?谢谢。

回答

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; 
+0

非常感谢。这工作。 – user4816715

+0

我发现当我有不止一节课的时候,这些数字并没有出现。对于单个类,就像你在上面的例子中提供的那样,它可以很好地工作,但是当你有多个类的时候不会。出于某种原因,这些数字比他们应该的要小。但是为什么没有明确的理由/模式。有任何想法吗?谢谢。 – user4816715

+0

您可以发布演示您的问题的示例数据吗? – Reeza