首页 > 解决方案 > 在 SAS 中创建新的总和和百分比列

问题描述

我有以下数据集:

Locations      Occupation
001            Teacher
001            Fireman
002            Teacher
002            Policeman
002            Fireman
003            Teacher
003            Teacher
003            Fireman
003            Policeman

我想在 SAS 中为每个位置创建三个额外的列:总就业人数、警察百分比和消防员百分比。更新后的数据集应如下所示:

Locations      Occupation    TotalEmployed   PercentPolice   PercentFireman   
001            Teacher                   2               0             .50
001            Fireman                   2             .50             .50
002            Teacher                   3             .33             .33
002            Policeman                 3             .33             .33
002            Fireman                   3             .33             .33
003            Teacher                   4             .25             .25
003            Teacher                   4             .25             .25
003            Fireman                   4             .25             .25
003            Policeman                 4             .25             .25

谢谢!

标签: sas

解决方案


只需用于sql获取汇总统计信息,然后与原始数据合并:

proc sql;
create table summary as 
select locations, count(*) as totalemployed, 
    sum(occupation='Policeman')/calculated totalemployed as percentpolice,
    sum(occupation='Fireman')/calculated totalemployed as percentfireman

from chk1
group by locations;
quit;

data final;
merge chk1 summary;
by locations;
run;

在此处输入图像描述


推荐阅读