sas - 在 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
谢谢!
解决方案
只需用于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;
推荐阅读
- c - 如何从终端中删除扫描的号码,以便我看不到它?
- java - 没有引用就无法复制 ArrayList
- jquery - JQuery DataTable 标头未与 ScrollY 和服务器端处理对齐
- node.js - 在同一台服务器上结合 node.js rest api 和 angular
- r - R:在列表和数字上循环
- nativescript - iOS 上的 nativescript 应用程序中的音频问题
- ping - Ping TTL 与使用 traceroute 的跳数不对应
- r - 出现错误:EmailException (Java):使用 mailR 从 Rstudio 发送邮件时
- pytorch - 自定义数据加载器的 getitem 不起作用
- backup - Hazelcast 备份和恢复