【SAS系列】 SAS Studio的介紹與帳號申請

發布日期:2023/06/16

前言

怎麼會突然想要開始寫SAS的技術書?

我一直以為我這輩子不會再繼續處理SAS的東西了,就在我從公衛的領域,跳到法律的領域從底開始練等以後,SAS這件事情早就被我淡忘很多。

一身programming的技術,在爭點意識、三階理論、涵攝的面前,完全無用武之地。

我那時候以為我應該就會在法律圈裡面打滾,然後就把這些技能當作沒有。

沒有想到在去年,我耳聞IQVIA在找亞洲地區的跨領域SAS programmer時,陰錯陽差的又回到生醫產業的Real world solution,成為了一個SAS programmer。

其實我大學時期跟臨床試驗的知識與產業真的是八竿子打不著關係,我是環境與職業衛生背景的人,就算進到法律圈,主要專攻的也是勞動法。

我想我身上唯一跟臨床試驗知識相關的,那莫過於就是SAS programming的技術了,這也是為什麼我會在這個領域的理由。

而其實我在大學時代學統計跟SAS的時候,我自己就滿想要試著去把學習過程遇到的問題還有心得整理成筆記。

沒有這麼做的原因,一方面是因為沒有一個好的身分,另一方面是沒有好的平台。

如今身分有了,而現平台,也就是這個網站也有了,那似乎也差不多該開始這個整理了。

這個系列預計會寫多少呢?我也不曉得,總之我們就且看且走吧(不負責任ing。

這系列文章的想要的內容

一開始的時候在想說,網路上關於SAS軟體介紹的文章和影片其實非常多,那自己的文章想要在這一片紅海裡面有什麼樣的地位?

的確,如果就英語的資源來說的話,確實SAS的文章和影片以及其他輔助的資源相當多。

但是在繁體中文的資源其實並不是非常多,甚至是有點舊,有時候想要查一些Function幾乎都是要去看國外的資料,其實這個是滿可惜的。

所以我會希望可以透過這一系列的文章,詳細而且循序漸進的去介紹這個軟體,讓初學者可以好好上手,不要像我當時在上生統課,只會複製貼上助教的coding,完全不知道自己在跑些什麼。

當然真的要說的話,其實SAS Help裡面的東西也是詳盡到不行,但對於一般使用者來說,Help裡面的資訊多且繁雜,往往不一定可以抓到重點。

但希望的對象也不會是完全不知道這個軟體的人,而是對於這個軟體有一定的概念與認識,但是在programming架構並不是非常完整,或是有點模糊的人。

因此這一系列的文章,比較像是我整理一些我自己一開始學習SAS軟體的筆記內容,以及在實務上面比較常遇到的問題。

而在介紹SAS軟體本身之前,第一篇文章(也就是這一篇),會先針對SAS的系統做一個說明,讓讀者至少可以先進到系統的畫面中,看到對應的視窗和大概知道他的功用。

之後在介紹語法架構等等的事情時,會比較可以自己try try看而不只是流於理論說明。

當然也包含我自己在準備SAS Base還有SAS Advanced考試上面的一些重點整理,以及我當時面試IQVIA SAS programmer的時候念的一些書的整理。

總之就是一個雜七雜八的筆記大全就是。

不一定會按照順序寫,比較像是想寫什麼就寫什麼的感覺XD,有需要的讀者可以自己找查一下相關的資訊,合先敘明。

但是比較前面的基本知識文章會盡量按照順序出就是。

對了,必須要先說的事情是,雖然SAS本身是一個資料分析的強大工具,但在這一系列的文章裡面,除非必要,否則不會講述任何在統計分析上面的理論與知識。

當然,如果有特別想要看一些什麼小專題,或是有甚麼指教,也是可以來信建議喔!: D

為什麼會選擇SAS Studio?

我自己本身會三個系統,SAS Base、SAS EG以及SAS Studio。

這三個系統除了內部運算的運作方式不太相同,以及介面可能長得不太一樣以外,在coding的部分可以說是大同小異。

但是SAS EG跟SAS Studio在圖形介面上會較Base友善許多。

我自己一開始最先使用的是學校的SAS Base,但是因為我已經從學校畢業多年,基本上我已經完全沒有機會可以再透過驗證的方式取得授權,並且使用SAS Base了。

公司雖然使用的是SAS EG,但畢竟這是公司的資源,公司要分明不能用做私用,所以這類文章的介紹上我不可以使用SAS EG。

那唯一的選擇就是使用SAS Studio了,免費,而且只要有網路的話就可以取得,這是非常方便的管道。

也因此我們在這一篇文章會先以「如何取得SAS Studio帳號」以及「SAS Studio基本界面和操作」為主要的說明內容。

SAS Studio的帳號申請

SAS Studio本身是利用Web瀏覽器,透過在特定的頁面上編寫特定的程式碼以後,Web瀏覽器會將程式碼送到雲端的SAS伺服器裡面進行運算,再回傳到使用者的畫面上[1]。

而使用者必須要先申請帳號,才可以進到特定的使用者頁面進行程式的編寫。

所以在這個部分我們會先介紹,如何可以申請SAS Studio的帳號。

可以直接點選以下的網站,就可以進到申請帳號的頁面。

SAS Studio的頁面

SAS OnDemand for Academics的頁面

其實之後要登入SAS Studio的話也是要透過這個頁面,不過我們這邊因為還沒有申請帳號,所以先在這個頁面上往下捲,找到「Get Started」內文中有一個「SAS Profile」(就是圖上紅色框框的地方)。

SAS Profile申請的頁面

在Profile申請的頁面之中,把自己的資訊填好就可以了。

對於語言的部分,只要選擇特定的語言他就會自動切換整個頁面的語言了,其實算是滿貼心的不擔心。

都填寫好了以後可以選擇最下面的按鈕送出,如果是繁體中文介面的使用者,最下面的按鈕為「建立個人認證帳戶」。

送出申請以後會看到的網頁的畫面

接下來要進行的就是Email驗證,SAS會寄信到你申請的時候所填入的信箱中。

信箱裡面的信

到信箱裡面的時候,在Email中可以看到「啟動您的SAS個人資料文件」,點下去,他就會開啟新的頁面要求你進行密碼的設置。

密碼設置的頁面

需注意的事情是,SAS Studio本身的密碼設置必須要有8個字元,其中必須包含大小寫的字母、數字還有符號。

密碼設置完成以後的頁面

看到上面的頁面,基本上來說就已經完成SAS Profile的帳號申請囉。

SAS Studio登入按鈕的位置

設立帳號完成以後,就可以在最一開始申請帳號的頁面右上角的地方找到「Sign In」,點選登入。

但這個時候已經可以開始使用SAS Studio了嗎?不,還沒。

創建好帳號以後,回到原本的登入頁面,他會跳出需要註冊SAS OnDemand的彈出視窗

就算已經建立好SAS profile,我們還必須要註冊SAS OnDemand才可以,所以在點選Sign In了以後,會跳出上面的視窗。

此時只要在圖中的框框裡面打勾,然後按下「Register」。

詢問伺服器位置的彈出視窗

接下來他會問你想要的伺服器位置,而因為是中文語系,所以選擇的是「Asia Pacific」。

再次確認伺服器位置的彈出視窗

因為伺服器位置之後是不能再變更的,所以他會跳出讓你再一次做確認。

他會提醒你記得去收信
躺在信箱裡面SAS OnDemend的註冊成功信

等收到了這封信以後,你的帳號就已經註冊完畢了,此時就可以回到原本的SAS OnDemand的頁面,用他Email給你的User ID或是信箱,就可以登入SAS Studio了。

登入以後的畫面

在SAS OnDemand登入以後,就可以看到上面的畫面,此時只要再點「Launch」,就可以進入到SAS Studio的介面了。

如果還沒有辦法登入的話,請給他一些些時間,系統需要等一下。

SAS Studio的畫面

如果有順利看到上面的畫面的話,就代表成功進到SAS Studio的系統裡面囉!

SAS Studio的視窗介紹

SAS Studio的畫面

為了方便說明,所以我這邊先簡單的code了一些小程式,透過DATA statement輸入了一些資料,並且試著透過PROC statement跑了一些基本的結果。

CODE標籤和program的名稱

一般來說我們coding的地方,就是code標籤裡面的位置,也就是下圖紅色框框的地方。

coding的位置

關於SAS裡面的語法架構,我們會在其他篇文章的時候再提及,這個部分只要先熟悉幾個比較重要的視窗位置還有功用就可以了。

而在CODE標籤上面的Program 1.sas,這個是你的程式碼檔案的名稱。

SAS program的副檔名都是「.sas」的方式來做儲存。

雖然SAS Studio是一個雲端空間,但是因為不同的使用者是可以透過不同帳戶來做登入,因此program的部分是可以儲存在對應帳號的雲端空間中。

如果想要把key了很久的program儲存起來的的話,可以按下圖中紅色框框內的符號。

我自己是滿建議如果真的有滿重要的program,可以直接下載下來儲存在自己的電腦裡面。

儲存program的按鈕位置

如果要run執行好的程式的話,只要按下圖紅色框框的黑色小人就可以了。

Run program的小人的位置
LOG標籤還有內容的解讀
LOG標籤的位置還有呈現的內容

如果有執行程式的話,在Log的地方會呈現出執行的結果,program本身執行所費的時間,看看有沒有Error以及Warning。

而關於SAS系統中程式執行可能會出現的幾種錯誤,這個部分我們之後的文章會再提及。

RESULTS標籤還有呈現的結果
RESULTS標籤的位置還有呈現的內容

如果那一次的程式有需要跑出什麼結果的話,SAS系統會把跑出來的結果呈現在這裡。

而因為我這一次的code有要跑針對A、B、C、D這四個變項的基本統計量,所以他就會出對應的報表給我。

而這個報表就會被放在RESULTS裡面。

OUTPUT DATA標籤還有產生的OUTPUT DATA
OUTPUT DATA標籤的位置還有裡面的東西

如果你的這一輪有使用到DATA statement,或是你有使用某些code可以匯出報表產生OUTPUT DATA的話,他就會出現在這個標籤還有內容。

這個標籤在還沒有以上的情況時,是不會出現的。

像是我們這一次有使用到DATA statement去輸入好幾個變數的資料,並且將它命名為test,因此就會有跑出這個OUTPUT DATA的結果。

Table properties按鈕的位置

如果你想要看跑出來的OUTPUT他本身每個變項的屬性,像是長度、文字還是數字變項等等,可以直接利用table properties這個按鈕來一次查詢。

針對不同的OUTPUT各變項還有欄位的屬性資訊
左側邊欄位和重要的功能們
左側邊欄位的位置

在這邊其實比較重要的會是「Server Files and Folders」以及「Libraries」這兩個部分。

「Server Files and Folders」裡面的Files(Home)主要放的是在伺服器裡面的檔案們,像是剛剛如果有把program儲存的話,就會被放在這個裡面。

而放在Files(Home)之中的檔案,就可以被下載到自己的電腦之中,這個我們本文後面會再提及。

而Libraries的部分,就跟我們一般SAS認知的Libraries的功能與架構都相同。

左側欄位中的Libraries架構

如果有熟知SAS EG以及SAS Base的讀者,其實Libraries的架構與另外兩個系統是相仿的,因為畢竟都是原本內建的Libraries。

一般來說如果在進行DATA statement後,如果沒有特別先創建Library跟指定dataset要跑去哪個library的話,預設都是會出現在work這個library中。

就像我們剛剛的code有跑了一個test的dataset,他也是出現在圖中。

SAS Studio外部資料匯入

先不論資料的分析方法,如果我有現成的資料檔想要弄進SAS Studio裡面,我可以怎麼做?

如果是在以往的SAS Base或是SAS EG的話,因為可以比較清楚知道資料夾的架構,所以能夠用code和執行來做匯入。

但因為是雲端空間的緣故,對於資料夾結構並不是非常熟悉,所以我這邊就介紹我自己比較常使用的方法。

順序是這樣:

Step.1 先把想要分析的資料檔上傳到Files(Home)裡面。

Step.2 再利用SAS Studio提供的code把資料檔弄到Work library裡面。

上傳到Files(Home)裡面

首先在左側邊欄位裡面,找「Server Files and Folders」,並且在上面的標籤中找到「Upload」。

Upload按鈕的位置

選擇Upload以後,會有一個彈出視窗可以讓你選擇要上傳什麼樣的檔案,以及目的路徑會是什麼。

目的路徑的指向就會是SAS Studio的雲端Server。

Upload的彈出視窗

選擇要上傳的檔案以後,就可以看到檔案會出現在Files(Home)的資料夾裡面。

上傳好的資料檔出現的位置
把資料檔弄到Work library中

針對剛剛上傳好的資料檔點兩下,就會在右邊的視窗中跑出相對應那個資料檔的名稱。

選擇code標籤,SAS Studio就會提供把這個資料檔匯入Work library的程式碼。

可以把上傳資料匯入Work library的程式碼

選擇這一段程式碼然後按Run的黑色小人,就可以把資料檔弄入Work library中了。

如果想要改檔名的話,可以將「%web_drop_table(WORK.IMPORT);」裡面的IMPORT改成其他的名字即可。

成功匯入Work library的資料檔

匯入以後就可以在後續的各種statement裡面,針對這個資料檔進行整理或是分析。

SAS Studio處理完後的資料匯出

SAS處理完的資料可以分成兩類,一類是直接以RESULTS的方式輸出,另一類則是轉成dataset,以dataset的方式匯出。

以RESULTS的方式匯出

對於程式執行的結果,會出現在RESULTS的頁籤之中。

在RESULT頁籤中的可以匯出的各種模式

而在該頁籤之中,其實就有各種可以把這個結果弄出去的方式,不論是存成HTML、列印等等都是不錯的方法。

當然,也可以直接看這些數字自己key入表單就是了,如果不嫌麻煩的話XD。

以dataset的方式匯出

如果不想要手抄資料檔,或是後續想要進行其他的分析,而必須要以.csv檔案或是.xlsx的檔案匯出的話,那就必須要以dataset的方式匯出。

至於要怎麼樣可以透過code把結果的資料檔弄成dataset的形式,針對不同的PROC statement有不同的方法。

這個部分我們後面有機會在其他文章再來說這件事情。

PROC MEANS這個statement是透過OUTPUT OUT來做輸出,輸出以後的dataset會出現在左側邊欄位中的work library中

針對這個想要匯出的dataset點右鍵,然後選擇Export。

對範例的Result檔案按下右鍵時會出現的選單

就跟匯入的方法一樣,如果想要把dataset匯出的話,就必須要把dataset先弄到Files(Home)裡面才可以download。

選擇Export,設定好自己想要下載的資料檔模式以及檔案名稱,而匯出的路徑就是要選Files(Home)。

從Work library匯出到Files(Home)的設定方式

當匯出的資料檔有出現在「Server Files and Folders」裡面時,就可以按download的按鈕把他下載下來,存到自己的電腦裡面了。

從Work library匯出到Files(Home)的結果以及下載按鈕

結語

SAS Studio其實我自己在之前也沒有接觸過,是自從公司有要求必須要考SAS證照,也發現沒有SAS base可以用、亦不能使用EG時,額外學習的一個新的系統。

但其實SAS Studio本身除了介面不太一樣以外,和Base還有EG其實大同小異,除了資料的匯出跟匯入因為雲端空間的緣故比較費時以外,在coding的部分差異不大。

如果想要學習跟練習SAS programming的話,是一個不需要仰賴學校授權,可以免費使用的一個好空間。

這篇文章簡單的介紹了SAS Studio的帳號申請、視窗還有資料的輸入和輸出的方式,雖然其中涉及不少和後續文章有關的內容,但讀者可以先簡單看過就好,programming的部分我們後續都還會提到。

當然作為這個系列文的引言,也是稍微說明一下這個系列文章希望的客群、能夠帶來的功效還有想要做的事情。

一方面也是希望可以透過文章的撰寫,繼續保有自己的寫作能力不要退化,並持續在SAS programmer這個position上面,持續精進自己的技術。

而就如同前言所述,文章出的順序不一定會按照學習的順序,如果在學習的過程中一時有找到不錯的主題,應該就會先跳那個主題來寫,還請各位讀者多包涵。

那我們就下一篇文章再見囉: D。

參考文獻

[1] 程式設計入門:SAS® Studio 3.4,SAS Institute Inc

非常感謝您閱讀我的文章!您的支持和鼓勵是我不斷創作的動力。如果我的文章為您帶來了一些啟發或幫助,希望您可以透過以上贊助連結來支持我,讓我能夠繼續分享更多有價值的內容。不管金額大小,我都非常感激。謝謝您的支持和陪伴,期待和您繼續分享更多美好或實用的故事和經驗: )。