proc使用where子句

时间:2016-01-20 12:29:57

标签: sas

我有一个带有树变量的数据集,三个二进制变量。

我写了一个proc表格

proc tabulate data=mydata;
class country var1 var2;
table Country, var1 var2;
run;

    Var1    Var2    
    0   1   0   1
USA 40  50  40  50
AUS 50  20  50  20
IRE 60  40  60  40
DUB 70  50  70  50

这里我得到的表格包含var 1 var 2的总数,分别为0和1。

但是我只想在这个交叉表中输入1的总数。我怎样才能做到这一点。

如果我使用下面的caluse,它只显示1ns ..

proc tabulate data=mydata;
class country var1 var2;
table Country, var1 var2;
where var1=1 and var2=2;
run;

当我使用上述内容时,它同时只显示两者中的1。 这不是我想要的。 所以我想要的数据集如下。

    Var1 Var2
    1   1
USA 50  50
AUS 20  20
IRE 40  40
DUB 50  50

还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

and更改为or

   Truth table for
   Var1=1, Var2=1

             Include?
Var1 Var2  AND      OR
0    0      N       N
0    1      N       Y
1    0      N       Y
1    1      Y       Y

答案 1 :(得分:0)

由于你的变量被编码为0,1你可以要求SUM统计量得到1的“计数”。

proc tabulate data=mydata;
   class country;
   var var1 var2;
   table Country, var1*sum var2*sum;
run;