如果你将proc摘要与class-clause一起使用,它将按照这个类的顺序对你的观察结果进行排序.
proc summary data=One;
by var_1;
class var_2 var_3 var_4;
output out = Two(drop= _freq_ _type_);
run;
Run Code Online (Sandbox Code Playgroud)
1)我是对的吗?
2)如果我没有指定所有字段会发生什么?
proc summary data = Three(keep= var_1 var_2 var_ 3 var_4 var_5 var_6);
by var_1;
class var_2 var_3;
output out = Four(drop= _freq_ _type_ );
run;
Run Code Online (Sandbox Code Playgroud)
3)哪个处理更快:proc summary或proc sort?
这里有几点需要注意.
希望这可以帮助.
这是我最后一点的一个例子.使用_all_asks返回数据集中的所有变量,这会在日志中为先前在CLASS语句中列出的变量创建警告,但可以安全地忽略它.基本上我懒得不想为宽数据集分别指定剩余的变量.
data have;
input unique_id custno log_dt :datetime15.;
format log_dt datetime15.;
cards;
1 123 01jul2012:13:23
2 265 01jul2012:13:56
3 342 01jul2012:15:02
4 123 01jul2012:17:12
5 342 01jul2012:18:33
6 265 02jul2012:08:41
7 123 02jul2012:10:14
8 265 02jul2012:11:05
;
run;
proc summary data=have nway;
class custno log_dt;
format log_dt dtdate9.;
output out=want (drop=_:) maxid(log_dt(_all_))=;
run;
Run Code Online (Sandbox Code Playgroud)