使用 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 |
| 等等 |