【資料分析】SAS Base 認證考試經驗+心得分享

Kao Jia
Oct 6, 2021

--

SAS Certified Specialist: Base Programming Using SAS 9.4

目錄:
1.前言
2.背景介紹
3.官方課程優缺點
4.讀書計畫
5.202110考試現場
6.個人覺得重要觀念

前言

最近考完SAS BASE順利通過啦!兩個多月來獲得網上各式各樣的資源幫助,所以也想回饋一些經驗和心得給未來要考試的大家,希望可以給正在備考的你一些信心🌟

背景介紹

大學期間學校有多門課都有用到SAS,但僅限於特定的統計分析操作。

在四五月左右,一起上課的朋友看到SAS官方課程而打算一起備考。雖已是學生折扣,價格對我們而言還是偏昂貴,因此我們當時猶豫是否直接報名Advanced的課程(畢竟看Base的內容,大學課程似乎都有碰到一點)。但後來在報名時,承辦人有貼心提醒考試時的帳號必須要通過Base證照才能考Advanced,於是我們猶豫了一下還是咬牙報名了Base課程。

事後想想真是明智之舉,雖然課程價格昂貴,但這是有包含考試費用的;而且有些基礎觀念大學教的時候並未清楚交代。因此以下的學習是以官方課程的腳步來進行備考的。

官方課程優缺點

優點

  1. 內容多為中文說明,英文內容,方便理解
  2. 一個影片約3–5分鐘,不太會有時間壓力(還能倍速觀看)
  3. 有章節小考方便複習
  4. 系統性的學習,有情境示範

缺點

  1. 昂貴
  2. 網站在某些時候無法登入
  3. 影片觀看有時間限制(3個月或6個月內要看完)

讀書計畫

原本我們打算兩個月內看完Base的影片就去考,但疫情影響之前報名的時段被取消了,所以我們是在第三個月才去考的。

讀書計畫可以分為兩階段:考試前兩週之前、考試前兩週

考試前兩週之前:

悠哉看影片寫程式時期,跟著影片的步伐做練習。如果你是多(程式)語言學習者,務必專心看影片,SAS語法的邏輯可以說與其他程式的邏輯差的有點多,很多其他程式語言的邏輯是無法套在SAS上的。

考試前兩週:

刷題時期,可去網上找各種流傳的練習題,如70題、123題。

其實我推測大概兩年前左右SAS應該是全部或大部分是選擇題,所以單靠刷題就可解決大部分問題,但現在有一半是實作題,因此還是要認真打好基礎🤓

這裡要特別提醒,像是70 或123題中有很多考input 啊、infile啊近年都不太考的樣子,官方影片也未特別提可跳過,array的部分則應該是歸類在advanced的考試中。

刷題時不免俗肯定很多問號,這是正常的,多做幾次就習慣了。個人感覺SAS考題的陷阱有點多(可能也源於它的邏輯),做題真的要發揮細心與耐心。

特別推薦!務必!考前去做官方提供的模考,難度與題型十分相似。但建議全部複習完再去考成效會較好。有時間請以兩倍速重刷一次官方課程,會發現之前不懂的地方豁然開朗喔!😋

另一點幫助很大的是考前demo影片:https://communities.sas.com/t5/SAS-Communities-Library/Tips-and-Strategies-for-the-A00-231-SAS-Base-Programming/ta-p/582838

可以讓你大概知道怎麼進行的,提升安心感。

202110考試現場

不得不說,考試現場有點荒唐,因為美國那邊設錯考試開始時間,所以我們又等了一陣子才開考。監考老師說按下一步的時候不要太快,之前就有發生過有人按太快跑不動整個黑屏,這個時候只好拿隔壁電腦重考🥲。所以說這是一個需要耐心和細心的考試哇。

另一個有點扯的是寫到後來鍵盤無法切換英文字母的大小寫,當時我的解決方法是召喚桌面鍵盤用點的(朋友也有遇到同樣的問題)

考試的形式與上述影片相同,可以選擇簡體中文、英文與日文

小提醒:✨

  1. 首先一定要會建立資料館 libname
  2. 由於裡面的data 都是唯獨檔,所以大部分的語法記得out= 特別是proc sort不能用原檔排序。

個人覺得重要的觀念

  1. proc sort 當多欄位都需要遞減排列時,每一個欄位前面都要加descending
  2. 我在看官方課程前完全不知道merge 前要先sort,以前都寫錯了….
  3. if else建立新欄位時,第一個then之後建立的觀察值長度就限制了整個欄位的長度,因此最好的方法是一開始就先用length規定那個欄位的長度
  4. if else 後的output後面不用加等於(直接output data),是data 或proc後面的out需要加等於(out=data)
  5. obs=15並不是意味著只顯示15個觀察值,而是指出現的觀察值到第15列就停止了。所以當語法是firstobs=5 obs=15就意味著資料從第5筆顯示到第15筆。
  6. length 與format是不同的,format並不會影響到真實的資料,僅僅只是改變了資料的相貌而已。
  7. 預設下數字欄位為8字元
  8. 缺失值被視為負無窮大,因此在進行if判斷時需注意
  9. 巨集變數若有引號必須為雙引號
  10. libname關掉是clear;ods關掉是close
  11. drop length where是在編譯的時候執行的,因此若把一些欄位進行調整後需要篩選時,需要if代替where
  12. 欄位加減時,遺漏值加減任意值會是遺漏值,使用sum可避免這種問題產生
  13. first.與last.皆需要先做proc sort,之後在data step 時記得加入by
  14. input是將文字轉數字,裡面填的第二個參數為informat(讀入格式);put是將文字轉數字,第二個參數為format(欲轉換成的格式)
  15. do loop 記得最後加end
  16. 寬表轉長表、長表轉寬表,proc transpose中的id by var分別後面接什麼欄位需要弄清楚

以上大概想到這些,SAS中有許多細節需要注意,我想這也是每一位SAS學習者需要學習並且精進的。

最後,祝福每一位考SAS base認證的人們都能順利取得認證~

--

--