使用 format 语句对数据进行分组
你可以在过程中应用格式,例如更改 proc summary
或 proc freq
中的分组。
分组 SAS 日期
data example2 ;
do Date = '01JUN2016'dt to '31AUG2016'dt ;
Days = 1 ;
output ;
end ;
run ;
/* Summarise by year & month */
proc summary data=example2 nway ;
class Date ;
var Days ;
output out=example2_sum (drop=_TYPE_ _FREQ_) sum= ;
format Date yymmn6. ; /* e.g. 201606 */
run ;
日期 | 天 |
---|---|
201606 |
三十 |
201607 |
31 |
201608 |
31 |
/* Summarise by month & year */
proc summary data=example2 nway ;
class Date ;
var Days ;
output out=example2_sum2 (drop=_TYPE_ _FREQ_) sum= ;
format Date monyy7. ; /* e.g. JUN2016 */
run ;
日期 | 天 |
---|---|
JUN2016 |
三十 |
JUL2016 |
31 |
AUG2016 |
31 |
使用格式的好处是保留了自然排序顺序。
以 sashelp.class
为例,假设你要比较每个名字第一个字母的频率。你可以使用 substr()
函数查找第一个字母,并在新变量上运行 proc freq
。或者,你可以将 $1.
格式应用于 Name
变量:
proc freq data=sashelp.class ;
table Name ;
format Name $1. ;
run ;
名称 | 计数 |
---|---|
一个 | 7 |
B |
4 |
C |
2 |
等等 |