【发布时间】:2016-02-02 11:08:21
【问题描述】:
我有一个给定的数据集:
Policy_Number,var1,var2,var3,Exposure
1,B,H,J,191
2,B,F,Unknown,174
3,C,Unknown,I,153
4,B,G,L,192
5,Unknown,E,Unknown,184
6,D,E,K,113
7,C,Unknown,I,140
8,A,H,I,133
9,C,F,I,194
10,Unknown,G,Unknown,105
11,B,H,L,172
12,A,Unknown,I,198
13,D,E,K,155
14,Unknown,G,K,177
15,B,H,Unknown,100
16,D,Unknown,J,176
17,B,E,I,112
18,Unknown,E,J,192
19,C,Unknown,K,146
20,C,G,Unknown,187
我想使用 PROC Means 或 Summary 将给定的数据转换为以下形式:
Variables Levels Tot_Exposures
Var1 A 331
Var1 B 941
Var1 C ...
Var1 D ...
Var1 Unknown ...
Var2 E ...
Var2 F ...
Var2 G ...
Var2 H ...
Var2 Unknown ...
Var3 I ...
Var3 J ...
Var3 K ...
Var3 L ...
Var3 Unknown ...
Tot_Exposure 返回我想要这个汇总表的每个变量名的总曝光量。请帮帮我。
编辑:我已经尝试过 proc 方法,但我希望它一步执行。我分三步完成。并得到像图像一样的输出。
代码如下:
data try2;
infile 'complex.csv' dsd dlm = ',' FIRSTOBS = 2;
Length Policy_Number Var1 $ 10 Var2 $ 10 Var3 $ 10 Exposure 3;
input Policy_Number $ Var1 $ Var2 $ Var3 $ Exposure;
run;
proc sort data = try2;
by Exposure;
run;
proc means data = try2 SUM;
class Var1;
var exposure;
output out = want;
title ' Var1';
run;
proc means data = try2 SUM;
class Var2;
var exposure;
output out = want2;
title 'Var2';
run;
proc means data = try2 SUM;
class Var3;
var exposure;
output out = want3;
title 'Var3';
run;
【问题讨论】: