[SAS] 3分鐘學會基本PROC SQL

YC Huang
Feb 6, 2024

--

在SAS當中製作資料集,除了上次介紹的[SAS]Data Step外,還有另一個很常見也很好用的function那就是PROC SQL。

若本身已經熟悉SQL,那麼在理解PROC SQL時,絕對會比一般人更好上手;反之,如果不了解也沒關係,這篇教你三分鐘上手PROC SQL。

圖一:sashelp.buy

今天我們以sashelp.buy這個資料集作範例,資料集共11筆資料,只有兩個欄位:時間和數量。時間是每年的1月份,數量我們假設是銷售總金額。

proc sql;
create table sales
as select date, amount, amount as Revenue format=dollar8.
from sashelp.buy
;
quit;
  • proc sql:告訴SAS我們希望使用這個function進行資料處理。
  • create table:將製作新的table,且新資料集叫做sales。
  • as select:從原始資料集選擇哪些變數至新的資料集,範例選擇date 和amount,不同變數之間一定要用逗號隔開。利用原始資料裡的amount另外製作一個新的變數revenue並給定特殊的顯示形式(format)。另外值得一提的是,select後面變數的順序決定最終產出資料集中變數的順序,比如我們給定as select var5, var1, var3,最終產出的資料便會依照var5, var1, var3呈現。
  • from:給定指令從哪個原始資料集生成。
  • quit:終止proc sql這個程序。
圖二:data set ‘Sales’

假設今天資料筆數龐大,我們只想顯示其中前幾筆資料時,可以參照下面這段程式碼:

proc sql;
title 'Sales report (yearly)'
;
select * from sashelp.buy(obs=5)
;
quit;
  • proc sql:告訴sas我們希望使用這個function進行資料處理。
  • title ‘Sales report (yearly)’:第二行title ‘OOO’可有可無,如果有需要,可以直接參照程式碼。若需要修改,可以直接修改引號內容。
  • select * from sashelp.buy(obs=5):select則表示我們希望新的資料集從原始資料(sashelp.buy)當中選擇的欄位變數,*表示所有變數欄位。obs=5表示只顯示前五個資料。
圖二:瀏覽原始資料集前五筆資料

Reference link:
PROC SQL Beyond the basics using SAS 3rd
SAS help center: SQL Procedure
SAS help center: What is the SQL proceure?

--

--

YC Huang

嗨嗨我是一個喜歡資料視覺化的小小工程師,目前專注於SAS和臨床統計,希望文章能更多關於什麼主題呢?歡迎留言給我