假设数据集如下:
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;
答案 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