SAS-计算变量的百分比

时间:2017-08-22 11:27:55

标签: sas calculation

假设数据集如下:

firm_name      year  gender
A              2011     M
A              2011     M
A              2011     F
A              2012     M
A              2012     M
A              2012     F
A              2012     M

我使用以下代码进行计算。

proc sql;
    create table result as
    select firm_name,
            year,
            sum(case when(gender="M") then 1 else 0 end)/count(*) as des
    from Have
    group by 1,2;
quit;

1 个答案:

答案 0 :(得分:0)

Longfish是正确的。这可以使用 Proc freq

实现
data begin;
    input firm_name $ year  gender $ ;
    datalines;
    A 2011 M
    A 2011     M
    A 2011     F
    A 2012     M
    A 2012     M
    A 2012     F
    A 2012     M
    ;
run;

在SAS中,我们总是需要对数据进行排序。您可以尝试弄乱订单,结果通常很有趣。请注意,SAS流程通常只提供警告,而不是错误。

proc sort data= begin; by firm_name year gender; run;

proc freq data= begin ; /*YOu can add noprint option in case of large files*/
    by firm_name year;
    table gender /out= wanted;
run;

有关 proc Freq 的更多信息,请参阅https://support.sas.com/documentation/cdl/en/statug/63962/HTML/default/viewer.htm#statug_freq_sect006.htm