SAS คืออะไร ใช้ทำอะไรได้บ้าง เรียนฟรีได้ไหม บทความนี้มีคำตอบครับ 😁 / ไม่ได้เขียนบทความนานเลยแอด เปลี่ยนจากเขียน open-source มาเป็น proprietary software กันบ้าง 555+
Table of Contents
What is SAS?
SAS ย่อมาจาก Statistical Analysis Software เป็นซอฟต์แวร์สำหรับงานด้านสถิติ พัฒนาโดย SAS Institute เขียนขึ้นมาจากภาษา C เวอร์ชันแรกออกมาในปี 1972 (50 ปีแล้ว)
เวอร์ชัน 9.4M7 (stable release) ตัวล่าสุดออกมาเมื่อเดือนสิงหาคม 2020 ทุกวันนี้ SAS สามารถทำ data management, advanced analytics, machine learning & AI

ตัวอย่างบริษัทใช้ SAS ในระดับ Global (อ้างอิงจากเว็บไซต์ SAS Customers Y2021)
- Nestle
- Honda
- AIA
- Standard Chartered
- WWF
- Office Depot
- Telenor (dtac Thailand)
- US Universities
ส่วนตัวแอดคิดว่า SAS OnDemand เป็น Statistical Software ที่ดีเลย เหมาะสำหรับใช้เรียนรู้พวก concepts ต่างๆ เป็นอีกหนึ่งตัวเลือกนอกจาก IBM SPSS และ open-source R
จุดแข็งของ SAS คือ Base SAS และ SAS/STAT และ Enterprise Miner สำหรับเทรนโมเดล machine learning/ data mining กับข้อมูลขนาดใหญ่ในบริษัท
ในประเทศไทย ธนาคารพาณิชย์ บริษัทประกัน และโทรคมนาคมหลายๆที่ก็ยังใช้ SAS กันอยู่ ต่างประเทศบอกว่า ยังใช้เวลาอีกนาน กว่าที่จะเปลี่ยนมาเป็น open-source ได้ 100%
เนื้อหาในบทความนี้ครอบคลุมบทเรียน Week 1-2 ของ Getting Started with SAS Programming เรียนฟรีบน coursera (แอดเลยลองเรียนเล่นๆ สนุกเฉย 🤣 555+)
📑 Fun Read – Why do people still use SAS? (Quora)
Free SAS OnDemand

สำหรับเพื่อนๆที่อยากเริ่มเรียน SAS สามารถสมัครใช้ SAS OnDemand ฟรี เป็น cloud-based service ล็อกอินเข้าใช้งานผ่าน web browser ไม่ต้อง install ให้ยุ่งยาก
Standard Process
การทำงานใน SAS จะแบ่งออกเป็น 5 ขั้นตอน เริ่มตั้งแต่การ Access data (โหลดข้อมูลเข้า SAS) เตรียมข้อมูล วิเคราะห์ และอธิบายผลให้ stakeholders เข้าใจ
- Access data
- Explore data
- Prepare data
- Analyze and Report on data
- Export results
SAS คือ software ที่ทำงาน data science ได้ตั้งแต่ต้นจนจบเลย (พร้อม plugins/ features เสริมมากมาย แต่ตอนใช้จริงต้องเสียเงินเพิ่ม ปีนึงมีเป็นล้านแน่นอน เย้ย 555+)
Note – SAS เป็น proprietary software (เสียเงินเพื่อใช้งาน) จะแตกต่างกับ Python, R ที่เป็น open-source ใช้งานฟรี ดัดแปลง พัฒนาต่อ หรือนำไปใช้ในเชิง commercial ก็ได้
SAS Syntax
SAS Syntax จะมีอยู่สองส่วนหลักๆ คือ
- DATA
- PROC (ย่อมาจาก procedure)
/* step 1 */
data myclass;
set sashelp.class;
run;
/* step 2 */
proc print data=myclass;
run;
DATA ใช้โหลดและเตรียม data สร้าง SAS Tables สำหรับการทำ analysis ส่วน PROC หรือ procedure ใช้ประมวลและสรุปผลข้อมูล สร้างโมเดลต่างๆ generate output เป็นต้น
SAS มีหลายพัน PROC commands เพื่อวิเคราะห์ข้อมูล
ในตัวอย่าง code ด้านบนเขียนคำสั่ง 2 steps (DATA step >> PROC step) ภายในแต่ละ step จะมี statement และทุก statement ต้องปิดท้ายด้วย semicolon ;
Note – SAS เป็นภาษาแบบ case insensitive จะพิมพ์ว่า DATA myclass; หรือ data myclass; ก็รันได้เหมือนกัน (ยกเว้นเวลาเขียน string ใน double quote “USA” <> “usa”)
Global Statements
นอกจาก DATA, PROC steps ใน SAS code สามารถเขียน GLOBAL statements เพื่อปรับ options ต่างๆของ SAS session นั้นๆที่เราทำงานอยู่ ตัวอย่างเช่น
- TITLE …;
- OPTIONS …;
- LIBNAME …;
Note – Global statements ไม่ต้องเขียน run
statement ต่อท้าย
Comment
- Single line ใช้
* ... ;
- Multiple line ใช้
/* ... */
SAS มี shortcut ctrl+/
เพื่อใช้ comment code เหมือน IDE อื่นๆ อันนี้สะดวกดี ตัวอย่าง code นี้เราสร้าง new data ชื่อว่า under13 โดย copy มาจาก sashelp.class และกรองเฉพาะ records ที่มี Age < 13
/* students under 13 yo */
data under13;
set sashelp.class;
where Age<13;
*drop Height Weight;
run;
Types of Data
SAS สามารถทำงานได้กับข้อมูลหลายประเภททั้งแบบที่มีโครงสร้าง และไม่มีโครงสร้าง (รวมไปถึง semi-structured data อย่าง JSON, XML, TXT)
- Structured data
- Unstructured data – no defined columns
ในบทความนี้ เราจะโฟกัสที่ structured data เป็นหลัก

SAS Table คือ dataset ที่เราสามารถเรียกใช้ใน SAS จะมีนามสกุลไฟล์ .sas7bdat
ให้นึกภาพตารางข้อมูลทั่วไปเหมือนที่เปิดในMS Excel หรือ SQL database
- Column => SAS เรียกว่า descriptor
- Data
SAS column ต้องมี 3 attributes (required): Name, Type, Length ชื่อคอลัมน์ขึ้นต้นด้วยตัวอักษรหรือ _ ความยาว 1-32 ตัวอักษร สามารถใช้ได้ทั้ง upper, lower, mixed cases แต่ห้ามขึ้นต้นด้วยตัวเลข (อันนี้ใช้กฎเหมือนกับภาษา programming อื่นๆ)
เราสามารถเรียกดูข้อมูล (metadata) ของแต่ละคอลัมน์ได้ด้วยคำสั่ง PROC CONTENTS
proc contents data=myclass;
run;

SAS Library
Global Statement – LIBNAME ใช้ในการสร้าง data folder สำหรับทำงานใน SAS อ้างอิงจากคอร์สเรียน SAS/ Coursera => “You can think of a SAS library as a collection of data files that are the same types and in the same location”
LIBNAME out "/home/u50300387/sasuser.v94/output";
DATA out.class_copy2;
SET sashelp.class;
RUN;
Import Data
เราสามารถ import data เข้าสู่ SAS ได้หลายวิธี ในตัวอย่างนี้เรากำหนด Global Statement – OPTIONS validvarname=v7; โดย v7 คือรูปแบบการตั้งชื่อคอลัมน์ในตารางของเราเป็นแบบ snake case (อ้างอิงจาก SAS 7) เช่น First_Name, Last_Name เป็นต้น
/* traditional SAS naming rule v7 */
OPTIONS validvarname=v7;
libname xlstorm xlsx
"/home/u50300387/sasuser.v94/EPG1V2/data/storm.xlsx";
proc contents data=xlstorm.storm_summary;
run;
proc print data=xlstorm.storm_summary;
run;
libname xlstorm clear;
Note – บรรทัดสุดท้ายเราใช้ LIBNAME lib_name CLEAR; เป็น good practice เพื่อเคลียร์ lib_name หรือปิด connection กับ data sources ของเรา (make it inactive)

วิธีที่สองในการ import data คือใช้คำสั่ง PROC IMPORT … โดยพารามิเตอร์ dbms ใช้กำหนดประเภทของไฟล์ต่างๆ เช่น Excel (xlsx) หรือ Delimited file format (dlm)
proc import datafile="path/filname.xlsx"
dbms=xlsx
out=output-table;
/* default to first sheet */
sheet=sheet-name;
run;
Export Data
😁 มี import ก็ต้องมี export
SAS ใช้คำสั่ง PROC EXPORT เพื่อส่งออกข้อมูลไปที่ใช้ในโปรแกรมอื่นๆ กำหนด path ที่ outfile เลือกประเภทข้อมูลที่ dbms และก็ run; ได้เลย
proc export data=sashelp.cars
/* full path to save exported data */
outfile="C:/workshop/output/cars.txt"
/* how to format the output */
dbms=tab replace;
run;
Syntax Errors
SAS มีหน้า LOG ไว้ให้เราดู Log messages หลังจากโปรแกรมรันคำสั่ง DATA, PROC ถ้ามี warnings หรือ errors เราสามารถรีวิวได้สะดวกมาก (ปกติมันจะบอกว่าเราเขียนผิดตรงไหน และจะแก้ error ได้ยังไง)
สาเหตุของการเกิด errors หรือ bugs ในโปรแกรม ส่วนใหญ่จะเขียน syntax ผิด หรือสะกดคำสั่งผิด – SAS มีความยืดหยุ่นพอสมควร ถ้าเราสะกด DATA เป็น DAAT บางทีโปรแกรมก็รันผ่าน (แต่จะมีขึ้นแจ้งเตือนในหน้า LOG)
- Misspelled keywords
- Unmatched quotation marks
- missing semicolon
- Invalid options
Note – เรียน programming ยังไงก็หนี errors ไม่พ้น => mindset ของเราคืออย่ากลัว error ยิ่งเจอ errors/ bugs บ่อยๆ เรายิ่งเรียนรู้ได้มากขึ้น 😁 (Learn from failure)
SAS Courses on Coursera
สำหรับเพื่อนๆที่ต้องใช้ SAS ในที่ทำงาน หรืออยากเรียนรู้ไว้เล่นๆ (แบบแอด 555+) ลองมาดูคอร์สฟรี SAS Programming ได้บน Coursera เลยครับ มีวิชาน่าสนใจหลายตัวเลย => เรียนฟรีทุกวิชา หรือจะอัพเกรดเพื่อรับ digital certificate ก็ได้ เฉลี่ยเดือนละ 39-49 USD

- SAS Programmer
- SAS Advanced Programmer
- SAS Statistical Business Analyst
- SAS Visual Business Analytics
เรียนให้สนุกครับทุกคน มีคอร์สอะไรดีๆมาป้ายยาแอดบ้างนะครับ Happy Learning!
PS. SAS มีโปรแกรม Certified Data Scientist ครอบคลุมเรื่อง Data curation, AI & ML, Advanced Analytics เผื่อใครอยากสะสม certificates ไว้สมัครงาน ลองดูได้นะครับ