SAS - คู่มือฉบับย่อ
SAS หมายถึง Statistical Analysis Software. สร้างขึ้นในปี พ.ศ. 2503 โดยสถาบัน SAS ตั้งแต่วันที่ 1 มกราคม พ.ศ. 2503 เป็นต้นมา SAS ถูกนำมาใช้ในการจัดการข้อมูลระบบธุรกิจอัจฉริยะการวิเคราะห์เชิงคาดการณ์การวิเคราะห์เชิงพรรณนาและการกำหนดคำอธิบายเป็นต้นตั้งแต่นั้นมามีการนำขั้นตอนและส่วนประกอบทางสถิติใหม่ ๆ มาใช้ในซอฟต์แวร์
ด้วยการแนะนำ JMP (Jump) สำหรับสถิติ SAS ใช้ประโยชน์จากไฟล์ Graphical user Interfaceซึ่งได้รับการแนะนำโดย Macintosh Jump ใช้สำหรับแอปพลิเคชันเช่น Six Sigma การออกแบบการควบคุมคุณภาพและวิศวกรรมและการวิเคราะห์ทางวิทยาศาสตร์
SAS ไม่ขึ้นอยู่กับแพลตฟอร์มซึ่งหมายความว่าคุณสามารถเรียกใช้ SAS บนระบบปฏิบัติการใดก็ได้ทั้ง Linux หรือ Windows SAS ขับเคลื่อนโดยโปรแกรมเมอร์ SAS ซึ่งใช้ลำดับการดำเนินการหลายลำดับบนชุดข้อมูล SAS เพื่อสร้างรายงานที่เหมาะสมสำหรับการวิเคราะห์ข้อมูล
ในช่วงหลายปีที่ผ่านมา SAS ได้เพิ่มโซลูชันมากมายให้กับกลุ่มผลิตภัณฑ์ มีโซลูชันสำหรับการกำกับดูแลข้อมูลคุณภาพข้อมูลการวิเคราะห์ข้อมูลขนาดใหญ่การขุดข้อความการจัดการการฉ้อโกงวิทยาศาสตร์สุขภาพ ฯลฯ เราสามารถสรุปได้อย่างปลอดภัยว่า SAS มีโซลูชันสำหรับทุกโดเมนธุรกิจ
หากต้องการดูรายการผลิตภัณฑ์ที่มีจำหน่ายอย่างรวดเร็วคุณสามารถเยี่ยมชมส่วนประกอบ SAS
ทำไมเราถึงใช้ SAS
SAS นั้นทำงานบนชุดข้อมูลขนาดใหญ่โดยทั่วไป ด้วยความช่วยเหลือของซอฟต์แวร์ SAS คุณสามารถดำเนินการต่างๆกับข้อมูลเช่น -
- การจัดการข้อมูล
- การวิเคราะห์ทางสถิติ
- การสร้างรายงานด้วยกราฟิกที่สมบูรณ์แบบ
- การวางแผนธุรกิจ
- การวิจัยปฏิบัติการและการบริหารโครงการ
- การปรับปรุงคุณภาพ
- การพัฒนาโปรแกรมประยุกต์
- การดึงข้อมูล
- การแปลงข้อมูล
- การอัปเดตและแก้ไขข้อมูล
หากเราพูดถึงส่วนประกอบของ SAS แสดงว่ามีส่วนประกอบมากกว่า 200 รายการใน SAS
ซีเนียร์ | ส่วนประกอบ SAS และการใช้งาน |
---|---|
1 | Base SAS เป็นส่วนประกอบหลักที่ประกอบด้วยสิ่งอำนวยความสะดวกในการจัดการข้อมูลและภาษาโปรแกรมสำหรับการวิเคราะห์ข้อมูล นอกจากนี้ยังใช้กันอย่างแพร่หลายมากที่สุด |
2 | SAS/GRAPH สร้างกราฟการนำเสนอเพื่อความเข้าใจที่ดีขึ้นและแสดงผลลัพธ์ในรูปแบบที่เหมาะสม |
3 | SAS/STAT ทำการวิเคราะห์ทางสถิติด้วยการวิเคราะห์ความแปรปรวนการถดถอยการวิเคราะห์หลายตัวแปรการวิเคราะห์การอยู่รอดและการวิเคราะห์ไซโครเมตริกการวิเคราะห์แบบจำลองแบบผสม |
4 | SAS/OR การวิจัยปฏิบัติการ. |
5 | SAS/ETS เศรษฐมิติและการวิเคราะห์อนุกรมเวลา |
6 | SAS/IML ภาษาเมทริกซ์ CInteractive |
7 | SAS/AF สิ่งอำนวยความสะดวกการใช้งาน |
8 | SAS/QC ควบคุมคุณภาพ. |
9 | SAS/INSIGHT การขุดข้อมูล |
10 | SAS/PH การวิเคราะห์การทดลองทางคลินิก |
11 | SAS/Enterprise Miner การขุดข้อมูล |
ประเภทของซอฟต์แวร์ SAS
- Windows หรือ PC SAS
- SAS EG (คู่มือสำหรับองค์กร)
- SAS EM (Enterprise Miner เช่นสำหรับการวิเคราะห์เชิงคาดการณ์)
- SAS หมายถึง
- สถิติ SAS
ส่วนใหญ่เราใช้ Window SAS ในองค์กรและในสถาบันฝึกอบรม บางองค์กรใช้ Linux แต่ไม่มีอินเทอร์เฟซผู้ใช้แบบกราฟิกดังนั้นคุณต้องเขียนโค้ดสำหรับทุกแบบสอบถาม แต่ในหน้าต่าง SAS มียูทิลิตี้มากมายที่ช่วยโปรแกรมเมอร์ได้มากและยังช่วยลดเวลาในการเขียนโค้ดอีกด้วย
หน้าต่าง SaS มี 5 ส่วน
ซีเนียร์ | หน้าต่าง SAS และการใช้งาน |
---|---|
1 | Log Window หน้าต่างบันทึกเป็นเหมือนหน้าต่างการดำเนินการที่เราสามารถตรวจสอบการทำงานของโปรแกรม SAS ในหน้าต่างนี้เราสามารถตรวจสอบข้อผิดพลาดได้ด้วย เป็นสิ่งสำคัญมากในการตรวจสอบทุกครั้งที่หน้าต่างบันทึกหลังจากเรียกใช้โปรแกรม เพื่อให้เรามีความเข้าใจที่ถูกต้องเกี่ยวกับการทำงานของโปรแกรมของเรา |
2 | Editor Window
Editor Window เป็นส่วนหนึ่งของ SAS ที่เราเขียนโค้ดทั้งหมด มันเป็นเหมือนสมุดบันทึก |
3 | Output Window หน้าต่างผลลัพธ์คือหน้าต่างผลลัพธ์ที่เราสามารถดูผลลัพธ์ของโปรแกรมของเราได้ |
4 | Result Window เปรียบเสมือนดัชนีของผลลัพธ์ทั้งหมด โปรแกรมทั้งหมดที่เราเรียกใช้ในหนึ่งเซสชันของ SAS จะแสดงอยู่ที่นั่นและคุณสามารถเปิดผลลัพธ์ได้โดยคลิกที่ผลลัพธ์ผลลัพธ์ แต่จะกล่าวถึงใน SAS เพียงเซสชันเดียวเท่านั้น หากเราปิดซอฟต์แวร์แล้วเปิดขึ้นมาหน้าต่างผลลัพธ์จะว่างเปล่า |
5 | Explore Window นี่คือไลบรารีทั้งหมดที่ระบุไว้ คุณยังสามารถเรียกดูไฟล์ที่รองรับ SAS ของระบบได้จากที่นี่ |
ห้องสมุดใน SAS
ไลบรารีเปรียบเสมือนที่เก็บข้อมูลใน SAS คุณสามารถสร้างไลบรารีและบันทึกโปรแกรมที่คล้ายกันทั้งหมดในไลบรารีนั้น SAS ให้ความสะดวกแก่คุณในการสร้างไลบรารีหลาย ๆ ไลบรารี SAS มีความยาวเพียง 8 อักขระ
มีห้องสมุดสองประเภทที่มีอยู่ใน SAS -
ซีเนียร์ | หน้าต่าง SAS และการใช้งาน |
---|---|
1 | Temporary or Work Library นี่คือไลบรารีเริ่มต้นของ SAS โปรแกรมทั้งหมดที่เราสร้างขึ้นจะถูกเก็บไว้ในไลบรารีงานนี้หากเราไม่ได้กำหนดไลบรารีอื่นให้ คุณสามารถตรวจสอบไลบรารีงานนี้ได้ในหน้าต่างสำรวจ หากคุณสร้างโปรแกรม SAS และไม่ได้กำหนดไลบรารีถาวรใด ๆ ให้กับโปรแกรมนั้นหากคุณสิ้นสุดเซสชันหลังจากนั้นอีกครั้งคุณจะเริ่มซอฟต์แวร์โปรแกรมนี้จะไม่อยู่ในไลบรารีงาน เนื่องจากจะอยู่ในไลบรารีงานเท่านั้นตราบเท่าที่เซสชันนั้นดำเนินไป |
2 | Permanent Library นี่คือไลบรารีถาวรของ SAS เราสามารถสร้างไลบรารี SAS ใหม่โดยใช้ยูทิลิตี้ SAS หรือโดยการเขียนโค้ดในหน้าต่างตัวแก้ไข ไลบรารีเหล่านี้ถูกตั้งชื่อเป็นแบบถาวรเนื่องจากหากเราสร้างโปรแกรมใน SAS และบันทึกไว้ในไลบรารีถาวรเหล่านี้จะสามารถใช้ได้ตราบเท่าที่เราต้องการ |
SAS Institute Inc. ได้เปิดตัวไฟล์ SAS University Editionซึ่งดีพอสำหรับการเรียนรู้การเขียนโปรแกรม SAS มีคุณสมบัติทั้งหมดที่คุณต้องเรียนรู้ในการเขียนโปรแกรม BASE SAS ซึ่งจะช่วยให้คุณสามารถเรียนรู้ส่วนประกอบ SAS อื่น ๆ
กระบวนการดาวน์โหลดและติดตั้ง SAS University Edition ตรงไปตรงมามาก มีให้ใช้งานในรูปแบบเครื่องเสมือนที่ต้องทำงานบนสภาพแวดล้อมเสมือนจริง คุณต้องมีซอฟต์แวร์เวอร์ชวลไลเซชันติดตั้งอยู่แล้วในพีซีของคุณก่อนจึงจะสามารถเรียกใช้ซอฟต์แวร์ SAS ได้ ในบทช่วยสอนนี้เราจะใช้VMware. ด้านล่างนี้เป็นรายละเอียดของขั้นตอนในการดาวน์โหลดตั้งค่าสภาพแวดล้อม SAS และตรวจสอบการติดตั้ง
ดาวน์โหลด SAS University Edition
SAS University Editionนี้สามารถดาวน์โหลดได้ที่ URL SAS มหาวิทยาลัยฉบับ โปรดเลื่อนลงเพื่ออ่านข้อกำหนดของระบบก่อนที่คุณจะเริ่มดาวน์โหลด หน้าจอต่อไปนี้จะปรากฏขึ้นเมื่อไปที่ URL นี้
ตั้งค่าซอฟต์แวร์เวอร์ชวลไลเซชัน
เลื่อนลงในหน้าเดียวกันเพื่อค้นหา stpe-1 การติดตั้ง ขั้นตอนนี้ให้ลิงค์เพื่อรับซอฟต์แวร์เวอร์ชวลไลเซชันที่เหมาะกับคุณ ในกรณีที่คุณติดตั้งซอฟต์แวร์เหล่านี้ในระบบของคุณอยู่แล้วคุณสามารถข้ามขั้นตอนนี้ได้
ซอฟต์แวร์การจำลองเสมือนเริ่มต้นอย่างรวดเร็ว
ในกรณีที่คุณยังใหม่กับสภาพแวดล้อมการจำลองเสมือนจริงคุณสามารถทำความคุ้นเคยกับสิ่งนี้ได้โดยอ่านคำแนะนำและวิดีโอต่อไปนี้ที่มีให้ในขั้นตอนที่ 2 คุณสามารถข้ามขั้นตอนนี้ได้อีกครั้งในกรณีที่คุณคุ้นเคยแล้ว
ดาวน์โหลดไฟล์ Zip
ในขั้นตอนที่ 3 คุณสามารถเลือกเวอร์ชันที่เหมาะสมของ SAS University Edition ที่เข้ากันได้กับสภาพแวดล้อมการจำลองเสมือนที่คุณมี ดาวน์โหลดเป็นไฟล์ zip ที่มีชื่อคล้ายกับ unvbasicvapp__9411005__vmx__en__sp0__1.zip
แตกไฟล์ zip
ไฟล์ zip ด้านบนจะต้องแตกไฟล์และจัดเก็บไว้ในไดเร็กทอรีที่เหมาะสม ในกรณีของเราเราได้เลือกไฟล์ zip VMware ซึ่งจะแสดงไฟล์ต่อไปนี้หลังจากคลายซิป
กำลังโหลดเครื่องเสมือน
เริ่มโปรแกรมเล่น VMware (หรือเวิร์กสเตชัน) และเปิดไฟล์ที่ลงท้ายด้วยนามสกุล. vmx หน้าจอด้านล่างจะปรากฏขึ้น โปรดสังเกตการตั้งค่าพื้นฐานเช่นหน่วยความจำและพื้นที่ฮาร์ดดิสก์ที่จัดสรรให้กับ vm
เปิดเครื่องเสมือน
คลิก Power on this virtual machineข้างเครื่องหมายลูกศรสีเขียวเพื่อเริ่มเครื่องเสมือน หน้าจอต่อไปนี้จะปรากฏขึ้น
หน้าจอด้านล่างจะปรากฏขึ้นเมื่อ SAS vm อยู่ในสถานะของการโหลดหลังจากนั้น vm ที่ทำงานอยู่จะแจ้งให้ไปยังตำแหน่ง URL ซึ่งจะเปิดสภาพแวดล้อม SAS
เริ่มต้น SAS studio
เปิดแท็บเบราว์เซอร์ใหม่และโหลด URL ด้านบน (ซึ่งแตกต่างจากพีซีเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง) หน้าจอด้านล่างปรากฏขึ้นเพื่อระบุว่าสภาพแวดล้อม SAS พร้อมแล้ว
สิ่งแวดล้อม SAS
เมื่อคลิกที่ไฟล์ Start SAS Studio เราได้รับสภาพแวดล้อม SAS ซึ่งโดยค่าเริ่มต้นจะเปิดขึ้นในโหมดโปรแกรมเมอร์ภาพดังที่แสดงด้านล่าง
นอกจากนี้เรายังสามารถเปลี่ยนเป็นโหมดโปรแกรมเมอร์ SAS ได้โดยคลิกที่เมนูแบบเลื่อนลง
ตอนนี้เราพร้อมที่จะเขียนโปรแกรม SAS
โปรแกรม SAS ถูกสร้างขึ้นโดยใช้ส่วนต่อประสานผู้ใช้ที่เรียกว่า SAS Studio.
ด้านล่างนี้คือคำอธิบายของหน้าต่างต่างๆและการใช้งาน
หน้าต่างหลักของ SAS
นี่คือหน้าต่างที่คุณเห็นเมื่อเข้าสู่สภาพแวดล้อม SAS ทางด้านซ้ายคือไฟล์Navigation Paneใช้เพื่อนำทางคุณสมบัติการเขียนโปรแกรมต่างๆ ทางด้านขวาคือไฟล์Work Area ซึ่งใช้สำหรับเขียนโค้ดและเรียกใช้งาน
การเติมโค้ดอัตโนมัติ
นี่เป็นคุณสมบัติที่มีประสิทธิภาพมากซึ่งช่วยให้ได้รับไวยากรณ์ที่ถูกต้องของคำหลัก SAS รวมทั้งให้ลิงก์ไปยังเอกสารประกอบสำหรับคำหลักนั้น
การดำเนินการโปรแกรม
การเรียกใช้โค้ดทำได้โดยการกดไอคอน run ซึ่งเป็นไอคอนแรกจากด้านซ้ายหรือปุ่ม F3
บันทึกโปรแกรม
บันทึกของโค้ดที่เรียกใช้งานอยู่ภายใต้ไฟล์ Logแท็บ อธิบายถึงข้อผิดพลาดคำเตือนหรือหมายเหตุเกี่ยวกับการทำงานของโปรแกรม นี่คือหน้าต่างที่คุณจะได้รับเบาะแสทั้งหมดในการแก้ปัญหารหัสของคุณ
ผลลัพธ์ของโปรแกรม
ผลลัพธ์ของการเรียกใช้โค้ดจะเห็นในแท็บผลลัพธ์ โดยค่าเริ่มต้นจะถูกจัดรูปแบบเป็นตาราง html
แท็บโปรแกรม
พื้นที่การนำทางมีคุณสมบัติในการสร้างและจัดการโปรแกรม นอกจากนี้ยังมีฟังก์ชันที่สร้างไว้ล่วงหน้าเพื่อใช้กับโปรแกรมของคุณ
ไฟล์เซิร์ฟเวอร์และโฟลเดอร์
ภายใต้แท็บนี้เราสามารถสร้างโปรแกรมเพิ่มเติมนำเข้าข้อมูลเพื่อวิเคราะห์และสืบค้นข้อมูลที่มีอยู่ นอกจากนี้ยังสามารถใช้เพื่อสร้างทางลัดโฟลเดอร์
งาน
แท็บ Tasks มีคุณลักษณะในการใช้โปรแกรม SAS ที่สร้างขึ้นโดยการจัดหาเฉพาะตัวแปรอินพุต ตัวอย่างเช่นภายใต้โฟลเดอร์สถิติคุณสามารถค้นหาโปรแกรม SAS เพื่อทำการถดถอยเชิงเส้นได้โดยใส่เฉพาะชื่อชุดข้อมูล SAS และชื่อตัวแปรเท่านั้น
ตัวอย่างข้อมูล
แท็บข้อมูลโค้ดมีคุณสมบัติในการเขียน SAS Macro และสร้างไฟล์จากชุดข้อมูลที่มีอยู่
โปรแกรมไลบรารี
SAS เก็บชุดข้อมูลในไลบรารี SAS ไลบรารีชั่วคราวพร้อมใช้งานสำหรับเซสชันเดียวเท่านั้นและมีชื่อว่า WORK แต่ห้องสมุดถาวรจะพร้อมใช้งานเสมอ
ทางลัดไฟล์
แท็บนี้ใช้เพื่อเข้าถึงไฟล์ที่เก็บไว้นอกสภาพแวดล้อม SAS ทางลัดไปยังไฟล์ดังกล่าวจะถูกเก็บไว้ในแท็บนี้
การเขียนโปรแกรม SAS เกี่ยวข้องกับการสร้าง / อ่านชุดข้อมูลลงในหน่วยความจำก่อนแล้วจึงทำการวิเคราะห์ข้อมูลนี้ เราต้องเข้าใจขั้นตอนการเขียนโปรแกรมเพื่อให้บรรลุสิ่งนี้
โครงสร้างโปรแกรม SAS
แผนภาพด้านล่างแสดงขั้นตอนที่ต้องเขียนตามลำดับที่กำหนดเพื่อสร้างโปรแกรม SAS
โปรแกรม SAS ทุกโปรแกรมจะต้องมีขั้นตอนเหล่านี้ทั้งหมดเพื่ออ่านข้อมูลอินพุตวิเคราะห์ข้อมูลและให้ผลลัพธ์ของการวิเคราะห์ นอกจากนี้RUN คำสั่งในตอนท้ายของแต่ละขั้นตอนจะต้องดำเนินการตามขั้นตอนนั้นให้เสร็จสิ้น
ขั้นตอนข้อมูล
ขั้นตอนนี้เกี่ยวข้องกับการโหลดชุดข้อมูลที่ต้องการลงในหน่วยความจำ SAS และการระบุตัวแปร (หรือที่เรียกว่าคอลัมน์) ของชุดข้อมูล นอกจากนี้ยังเก็บบันทึก (เรียกอีกอย่างว่าการสังเกตหรือวัตถุ) ไวยากรณ์สำหรับคำสั่ง DATA มีดังต่อไปนี้
ไวยากรณ์
DATA data_set_name; #Name the data set.
INPUT var1,var2,var3; #Define the variables in this data set.
NEW_VAR; #Create new variables.
LABEL; #Assign labels to variables.
DATALINES; #Enter the data.
RUN;
ตัวอย่าง
ตัวอย่างด้านล่างแสดงกรณีง่ายๆในการตั้งชื่อชุดข้อมูลกำหนดตัวแปรสร้างตัวแปรใหม่และป้อนข้อมูล ที่นี่ตัวแปรสตริงมี $ ต่อท้ายและไม่มีค่าตัวเลข
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
comm = SALARY*0.25;
LABEL ID = 'Employee ID' comm = 'COMMISION';
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
ขั้นตอนกระบวนการ
ขั้นตอนนี้เกี่ยวข้องกับการเรียกใช้โพรซีเดอร์ในตัว SAS เพื่อวิเคราะห์ข้อมูล
ไวยากรณ์
PROC procedure_name options; #The name of the proc.
RUN;
ตัวอย่าง
ตัวอย่างด้านล่างแสดงโดยใช้ไฟล์ MEANS ขั้นตอนการพิมพ์ค่าเฉลี่ยของตัวแปรตัวเลขในชุดข้อมูล
PROC MEANS;
RUN;
ขั้นตอน OUTPUT
ข้อมูลจากชุดข้อมูลสามารถแสดงด้วยคำสั่งเอาต์พุตตามเงื่อนไข
ไวยากรณ์
PROC PRINT DATA = data_set;
OPTIONS;
RUN;
ตัวอย่าง
ตัวอย่างด้านล่างแสดงโดยใช้ where clause ในเอาต์พุตเพื่อสร้างเร็กคอร์ดเพียงไม่กี่รายการจากชุดข้อมูล
PROC PRINT DATA = TEMP;
WHERE SALARY > 700;
RUN;
โปรแกรม SAS ที่สมบูรณ์
ด้านล่างนี้คือรหัสที่สมบูรณ์สำหรับแต่ละขั้นตอนข้างต้น
เอาต์พุตโปรแกรม
RESULTSเช่นเดียวกับภาษาโปรแกรมอื่น ๆ ภาษา SAS มีกฎของไวยากรณ์ในการสร้างโปรแกรม SAS
องค์ประกอบทั้งสามของโปรแกรม SAS - คำสั่งตัวแปรและชุดข้อมูลเป็นไปตามกฎด้านล่างในไวยากรณ์
งบ SAS
คำสั่งสามารถเริ่มต้นที่ใดก็ได้และสิ้นสุดที่ใดก็ได้ เครื่องหมายอัฒภาคที่ท้ายบรรทัดสุดท้ายหมายถึงจุดสิ้นสุดของคำสั่ง
คำสั่ง SAS จำนวนมากสามารถอยู่ในบรรทัดเดียวกันโดยแต่ละคำสั่งจะลงท้ายด้วยอัฒภาค
ช่องว่างสามารถใช้เพื่อแยกส่วนประกอบในคำสั่งโปรแกรม SAS
คีย์เวิร์ด SAS ไม่คำนึงถึงขนาดตัวพิมพ์
ทุกโปรแกรม SAS ต้องลงท้ายด้วยคำสั่ง RUN
ชื่อตัวแปร SAS
ตัวแปรใน SAS แสดงคอลัมน์ในชุดข้อมูล SAS ชื่อตัวแปรเป็นไปตามกฎด้านล่าง
มีความยาวได้สูงสุด 32 อักขระ
ไม่สามารถใส่ช่องว่างได้
ต้องขึ้นต้นด้วยตัวอักษร A ถึง Z (ไม่คำนึงถึงขนาดตัวพิมพ์) หรือขีดล่าง (_)
สามารถใส่ตัวเลขได้ แต่ไม่ใช่อักขระตัวแรก
ชื่อตัวแปรไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ตัวอย่าง
# Valid Variable Names
REVENUE_YEAR
MaxVal
_Length
# Invalid variable Names
Miles Per Liter #contains Space.
RainfFall% # contains apecial character other than underscore.
90_high # Starts with a number.
ชุดข้อมูล SAS
คำสั่ง DATA เป็นการสร้างชุดข้อมูล SAS ใหม่ กฎสำหรับการสร้างชุดข้อมูลมีดังต่อไปนี้
คำเดียวหลังคำสั่ง DATA แสดงชื่อชุดข้อมูลชั่วคราว ซึ่งหมายความว่าชุดข้อมูลจะถูกลบเมื่อสิ้นสุดเซสชัน
ชื่อชุดข้อมูลสามารถนำหน้าด้วยชื่อไลบรารีซึ่งทำให้เป็นชุดข้อมูลถาวร ซึ่งหมายความว่าชุดข้อมูลจะยังคงอยู่หลังจากเซสชันสิ้นสุดลง
หากไม่ใส่ชื่อชุดข้อมูล SAS SAS จะสร้างชุดข้อมูลชั่วคราวโดยใช้ชื่อที่สร้างโดย SAS เช่น - DATA1, DATA2 เป็นต้น
ตัวอย่าง
# Temporary data sets.
DATA TempData;
DATA abc;
DATA newdat;
# Permanent data sets.
DATA LIBRARY1.DATA1
DATA MYLIB.newdat;
นามสกุลไฟล์ SAS
โปรแกรม SAS ไฟล์ข้อมูลและผลลัพธ์ของโปรแกรมจะถูกบันทึกด้วยนามสกุลต่างๆใน windows
*.sas - แสดงถึงไฟล์รหัส SAS ซึ่งสามารถแก้ไขได้โดยใช้ SAS Editor หรือโปรแกรมแก้ไขข้อความใด ๆ
*.log - แสดงถึงไฟล์บันทึก SAS ซึ่งมีข้อมูลเช่นข้อผิดพลาดคำเตือนและรายละเอียดชุดข้อมูลสำหรับโปรแกรม SAS ที่ส่งมา
*.mht / *.html − แสดงถึงไฟล์ SAS Results
*.sas7bdat − แสดงถึงไฟล์ข้อมูล SAS ซึ่งมีชุดข้อมูล SAS รวมถึงชื่อตัวแปรป้ายกำกับและผลลัพธ์ของการคำนวณ
ความคิดเห็นใน SAS
ความคิดเห็นในรหัส SAS ระบุไว้สองวิธี ด้านล่างนี้คือสองรูปแบบนี้
* ข้อความ; พิมพ์ความคิดเห็น
ความคิดเห็นในรูปแบบของ *message;ต้องไม่มีอัฒภาคหรือเครื่องหมายคำพูดที่ไม่ตรงกันอยู่ข้างใน นอกจากนี้ไม่ควรมีการอ้างอิงถึงคำสั่งมหภาคใด ๆ ในความคิดเห็นดังกล่าว สามารถขยายได้หลายบรรทัดและมีความยาวเท่าใดก็ได้ .. ต่อไปนี้เป็นตัวอย่างความคิดเห็นบรรทัดเดียว -
* This is comment ;
ต่อไปนี้เป็นตัวอย่างความคิดเห็นหลายบรรทัด -
* This is first line of the comment
* This is second line of the comment;
/ * ข้อความ * / พิมพ์ความคิดเห็น
ความคิดเห็นในรูปแบบของ /*message*/ถูกใช้บ่อยขึ้นและไม่สามารถซ้อนกันได้ แต่สามารถขยายได้หลายบรรทัดและมีความยาวเท่าใดก็ได้ ต่อไปนี้เป็นตัวอย่างความคิดเห็นบรรทัดเดียว -
/* This is comment */
ต่อไปนี้เป็นตัวอย่างความคิดเห็นหลายบรรทัด -
/* This is first line of the comment
* This is second line of the comment */
ข้อมูลที่พร้อมใช้งานสำหรับโปรแกรม SAS สำหรับการวิเคราะห์เรียกว่าชุดข้อมูล SAS มันถูกสร้างขึ้นโดยใช้ขั้นตอน DATA SAS สามารถอ่านไฟล์ได้หลากหลายเป็นแหล่งข้อมูลเช่นCSV, Excel, Access, SPSS and also raw data. นอกจากนี้ยังมีแหล่งข้อมูลในตัวมากมายให้ใช้งานได้
ชุดข้อมูลเรียกว่า temporary Data Set หากพวกเขาถูกใช้โดยโปรแกรม SAS แล้วทิ้งไปหลังจากที่เรียกใช้เซสชัน
แต่ถ้าเก็บถาวรเพื่อใช้ในอนาคตจะเรียกว่าก permanent Data set. ชุดข้อมูลถาวรทั้งหมดจะถูกเก็บไว้ในไลบรารีเฉพาะ
ชุดข้อมูล SAS ถูกจัดเก็บในรูปแบบของแถวและคอลัมน์และเรียกอีกอย่างว่าตารางข้อมูล SAS ด้านล่างนี้เราจะเห็นตัวอย่างของชุดข้อมูลถาวรที่สร้างขึ้นและเป็นสีแดงจากแหล่งภายนอก
ชุดข้อมูลในตัว SAS
ชุดข้อมูลเหล่านี้มีอยู่แล้วในซอฟต์แวร์ SAS ที่ติดตั้ง สามารถสำรวจและใช้ในการกำหนดนิพจน์ตัวอย่างสำหรับการวิเคราะห์ข้อมูล หากต้องการสำรวจชุดข้อมูลเหล่านี้ให้ไปที่Libraries -> My Libraries -> SASHELP. ในการขยายเราจะเห็นรายชื่อของชุดข้อมูลในตัวทั้งหมดที่มีอยู่
ให้เลื่อนลงเพื่อค้นหาชุดข้อมูลที่ชื่อ CARSการคลิกสองครั้งที่ชุดข้อมูลนี้จะเป็นการเปิดชุดข้อมูลนี้ในบานหน้าต่างด้านขวาซึ่งเราสามารถสำรวจเพิ่มเติมได้นอกจากนี้เรายังสามารถย่อขนาดบานหน้าต่างด้านซ้ายโดยใช้ปุ่มขยายมุมมองที่อยู่ใต้บานหน้าต่างด้านขวา
เราสามารถเลื่อนไปทางขวาโดยใช้แถบเลื่อนที่ด้านล่างเพื่อสำรวจคอลัมน์และค่าทั้งหมดในตาราง
การนำเข้าชุดข้อมูลภายนอก
เราสามารถส่งออกไฟล์ของเราเองเป็นชุดข้อมูลโดยใช้คุณลักษณะการนำเข้าที่มีอยู่ใน SAS Studio แต่ไฟล์เหล่านี้ต้องพร้อมใช้งานในโฟลเดอร์เซิร์ฟเวอร์ SAS ดังนั้นเราต้องอัปโหลดไฟล์แหล่งข้อมูลไปยังโฟลเดอร์ SAS โดยใช้ตัวเลือกอัปโหลดภายใต้ไฟล์Server Files and Folders.
ต่อไปเราจะใช้ไฟล์ด้านบนในโปรแกรม SAS โดยการนำเข้า ในการทำเช่นนี้เราใช้ตัวเลือกTasks -> Utilities -> Import data ดังแสดงด้านล่าง ดับเบิลคลิกที่ปุ่มนำเข้าข้อมูลซึ่งจะเปิดหน้าต่างทางด้านขวาเพื่อเลือกไฟล์สำหรับชุดข้อมูล
คลิกถัดไปที่ Select Filesใต้โปรแกรมนำเข้าข้อมูลในบานหน้าต่างด้านขวา ต่อไปนี้เป็นรายการประเภทไฟล์ที่สามารถนำเข้าได้
เราเลือกไฟล์ "staff.txt" ที่เก็บไว้ในระบบภายในเครื่องและรับไฟล์ที่นำเข้าตามที่แสดงด้านล่าง
ดูข้อมูลที่นำเข้า
เราสามารถดูข้อมูลที่นำเข้าโดยการเรียกใช้รหัสนำเข้าเริ่มต้นที่สร้างขึ้นโดยใช้ตัวเลือกเรียกใช้
เราสามารถนำเข้าไฟล์ประเภทอื่น ๆ โดยใช้แนวทางเดียวกับข้างต้นและใช้ในโปรแกรม SAS ต่างๆ
ในตัวแปรทั่วไปใน SAS แสดงถึงชื่อคอลัมน์ของตารางข้อมูลที่กำลังวิเคราะห์ แต่ยังสามารถใช้เพื่อวัตถุประสงค์อื่นเช่นใช้เป็นตัวนับในลูปการเขียนโปรแกรม ในบทปัจจุบันเราจะเห็นการใช้ตัวแปร SAS เป็นชื่อคอลัมน์ของชุดข้อมูล SAS
ประเภทตัวแปร SAS
SAS มีตัวแปรสามประเภทดังนี้ -
ตัวแปรตัวเลข
นี่คือประเภทตัวแปรเริ่มต้น ตัวแปรเหล่านี้ใช้ในนิพจน์ทางคณิตศาสตร์
ไวยากรณ์
INPUT VAR1 VAR2 VAR3; #Define numeric variables in the data set.
ในไวยากรณ์ข้างต้นคำสั่ง INPUT แสดงการประกาศตัวแปรตัวเลข
ตัวอย่าง
INPUT ID SALARY COMM_PERCENT;
ตัวแปรอักขระ
ตัวแปรอักขระใช้สำหรับค่าที่ไม่ได้ใช้ในนิพจน์ทางคณิตศาสตร์ จะถือว่าเป็นข้อความหรือสตริง ตัวแปรจะกลายเป็นตัวแปรอักขระโดยการเพิ่ม $ sing โดยเว้นวรรคท้ายชื่อตัวแปร
ไวยากรณ์
INPUT VAR1 $ VAR2 $ VAR3 $; #Define character variables in the data set.
ในไวยากรณ์ข้างต้นคำสั่ง INPUT แสดงการประกาศตัวแปรอักขระ
ตัวอย่าง
INPUT FNAME $ LNAME $ ADDRESS $;
ตัวแปรวันที่
ตัวแปรเหล่านี้ถือว่าเป็นวันที่เท่านั้นและจำเป็นต้องอยู่ในรูปแบบวันที่ที่ถูกต้อง ตัวแปรจะกลายเป็นตัวแปรวันที่โดยการเพิ่มรูปแบบวันที่ด้วยช่องว่างที่ท้ายชื่อตัวแปร
ไวยากรณ์
INPUT VAR1 DATE11. VAR2 MMDDYY10. ; #Define date variables in the data set.
ในไวยากรณ์ข้างต้นคำสั่ง INPUT แสดงการประกาศตัวแปรวันที่
ตัวอย่าง
INPUT DOB DATE11. START_DATE MMDDYY10. ;
การใช้ตัวแปรในโปรแกรม SAS
ตัวแปรข้างต้นใช้ในโปรแกรม SAS ดังแสดงในตัวอย่างด้านล่าง
ตัวอย่าง
โค้ดด้านล่างนี้แสดงวิธีการประกาศและใช้ตัวแปรทั้งสามประเภทในโปรแกรม SAS
DATA TEMP;
INPUT ID NAME $ SALARY DEPT $ DOJ DATE9. ;
FORMAT DOJ DATE9. ;
DATALINES;
1 Rick 623.3 IT 02APR2001
2 Dan 515.2 OPS 11JUL2012
3 Michelle 611 IT 21OCT2000
4 Ryan 729 HR 30JUL2012
5 Gary 843.25 FIN 06AUG2000
6 Tusar 578 IT 01MAR2009
7 Pranab 632.8 OPS 16AUG1998
8 Rasmi 722.5 FIN 13SEP2014
;
PROC PRINT DATA = TEMP;
RUN;
ในตัวอย่างข้างต้นตัวแปรอักขระทั้งหมดจะถูกประกาศตามด้วยเครื่องหมาย $ และตัวแปรวันที่จะถูกประกาศตามด้วยรูปแบบวันที่ ผลลัพธ์ของโปรแกรมข้างต้นมีดังต่อไปนี้
การใช้ตัวแปร
ตัวแปรมีประโยชน์มากในการวิเคราะห์ข้อมูล ใช้ในนิพจน์ที่ใช้การวิเคราะห์ทางสถิติ มาดูตัวอย่างการวิเคราะห์ชุดข้อมูลในตัวที่ชื่อCARS ซึ่งอยู่ภายใต้ Libraries → My Libraries → SASHELP. ดับเบิลคลิกเพื่อสำรวจตัวแปรและประเภทข้อมูล
จากนั้นเราสามารถสร้างสถิติสรุปของตัวแปรเหล่านี้โดยใช้ตัวเลือก Tasks ใน SAS studio ไปที่Tasks -> Statistics -> Summary Statisticsและดับเบิลคลิกเพื่อเปิดหน้าต่างดังที่แสดงด้านล่าง เลือกชุดข้อมูลSASHELP.CARSและเลือกตัวแปรสามตัว ได้แก่ MPG_CITY, MPG_Highway และ Weight ภายใต้ตัวแปรการวิเคราะห์ กดปุ่ม Ctrl ค้างไว้ขณะเลือกตัวแปรโดยคลิก คลิกเรียกใช้
คลิกที่แท็บผลลัพธ์หลังจากขั้นตอนข้างต้น แสดงข้อมูลสรุปทางสถิติของตัวแปรทั้งสามที่เลือก คอลัมน์สุดท้ายระบุจำนวนการสังเกต (บันทึก) ที่ใช้ในการวิเคราะห์
สตริงใน SAS คือค่าที่อยู่ในอัญประกาศคู่หนึ่ง นอกจากนี้ยังมีการประกาศตัวแปรสตริงโดยการเพิ่มช่องว่างและเครื่องหมาย $ ที่ส่วนท้ายของการประกาศตัวแปร SAS มีฟังก์ชันที่มีประสิทธิภาพมากมายในการวิเคราะห์และจัดการสตริง
การประกาศตัวแปรสตริง
เราสามารถประกาศตัวแปรสตริงและค่าได้ดังที่แสดงด้านล่าง ในโค้ดด้านล่างเราจะประกาศตัวแปรอักขระ 2 ตัวที่มีความยาว 6 และ 5 คีย์เวิร์ด LENGTH ใช้สำหรับการประกาศตัวแปรโดยไม่ต้องสร้างการสังเกตหลาย ๆ
data string_examples;
LENGTH string1 $ 6 String2 $ 5;
/*String variables of length 6 and 5 */
String1 = 'Hello';
String2 = 'World';
Joined_strings = String1 ||String2 ;
run;
proc print data = string_examples noobs;
run;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ซึ่งแสดงชื่อตัวแปรและค่าของตัวแปร
ฟังก์ชันสตริง
ด้านล่างนี้เป็นตัวอย่างของฟังก์ชัน SAS ที่ใช้บ่อย
SUBSTRN
ฟังก์ชันนี้แยกสตริงย่อยโดยใช้ตำแหน่งเริ่มต้นและตำแหน่งสิ้นสุด ในกรณีที่ไม่มีการกล่าวถึงตำแหน่งสิ้นสุดจะดึงอักขระทั้งหมดออกจนจบสตริง
ไวยากรณ์
SUBSTRN('stringval',p1,p2)
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
- stringval คือค่าของตัวแปรสตริง
- p1 คือตำแหน่งเริ่มต้นของการสกัด
- p2 เป็นตำแหน่งสุดท้ายของการสกัด
ตัวอย่าง
data string_examples;
LENGTH string1 $ 6 ;
String1 = 'Hello';
sub_string1 = substrn(String1,2,4) ;
/*Extract from position 2 to 4 */
sub_string2 = substrn(String1,3) ;
/*Extract from position 3 onwards */
run;
proc print data = string_examples noobs;
run;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ซึ่งแสดงผลลัพธ์ของฟังก์ชัน substrn
TRIMN
ฟังก์ชันนี้จะลบช่องว่างต่อท้ายในรูปแบบสตริง
ไวยากรณ์
TRIMN('stringval')
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
- stringval คือค่าของตัวแปรสตริง
data string_examples;
LENGTH string1 $ 7 ;
String1='Hello ';
length_string1 = lengthc(String1);
length_trimmed_string = lengthc(TRIMN(String1));
run;
proc print data = string_examples noobs;
run;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ซึ่งแสดงผลลัพธ์ของฟังก์ชัน TRIMN
อาร์เรย์ใน SAS ใช้เพื่อจัดเก็บและดึงข้อมูลชุดของค่าโดยใช้ค่าดัชนี ดัชนีแสดงตำแหน่งในพื้นที่หน่วยความจำที่สงวนไว้
ไวยากรณ์
ใน SAS อาร์เรย์ถูกประกาศโดยใช้ไวยากรณ์ต่อไปนี้ -
ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES
ในไวยากรณ์ข้างต้น -
ARRAY คือคีย์เวิร์ด SAS เพื่อประกาศอาร์เรย์
ARRAY-NAME คือชื่อของอาร์เรย์ซึ่งเป็นไปตามกฎเดียวกันกับชื่อตัวแปร
SUBSCRIPT คือจำนวนค่าที่อาร์เรย์จะจัดเก็บ
($) เป็นพารามิเตอร์ทางเลือกที่จะใช้เฉพาะในกรณีที่อาร์เรย์จัดเก็บค่าอักขระ
VARIABLE-LIST เป็นรายการทางเลือกของตัวแปรซึ่งเป็นตัวยึดสำหรับค่าอาร์เรย์
ARRAY-VALUESคือค่าจริงที่เก็บไว้ในอาร์เรย์ สามารถประกาศได้ที่นี่หรืออ่านได้จากไฟล์หรือดาตาไลน์
ตัวอย่างของการประกาศอาร์เรย์
อาร์เรย์สามารถประกาศได้หลายวิธีโดยใช้ไวยากรณ์ข้างต้น ด้านล่างนี้คือตัวอย่าง
# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);
# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;
# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;
# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;
การเข้าถึงค่าอาร์เรย์
ค่าที่เก็บไว้ในอาร์เรย์สามารถเข้าถึงได้โดยใช้ printขั้นตอนดังแสดงด้านล่าง หลังจากประกาศโดยใช้วิธีใดวิธีหนึ่งข้างต้นข้อมูลจะถูกส่งโดยใช้คำสั่ง DATALINES
DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $; ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
การใช้ตัวดำเนินการ OF
ตัวดำเนินการ OF ถูกใช้ในการวิเคราะห์ข้อมูลในรูปแบบอาร์เรย์เพื่อทำการคำนวณในแถวทั้งหมดของอาร์เรย์ ในตัวอย่างด้านล่างเราใช้ผลรวมและค่าเฉลี่ยของค่าในแต่ละแถว
DATA array_example_OF;
INPUT A1 A2 A3 A4;
ARRAY A(4) A1-A4;
A_SUM = SUM(OF A(*));
A_MEAN = MEAN(OF A(*));
A_MIN = MIN(OF A(*));
DATALINES;
21 4 52 11
96 25 42 6
;
RUN;
PROC PRINT DATA = array_example_OF;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
การใช้ตัวดำเนินการ IN
ค่าในอาร์เรย์ยังสามารถเข้าถึงได้โดยใช้ตัวดำเนินการ IN ซึ่งตรวจสอบการมีอยู่ของค่าในแถวของอาร์เรย์ ในตัวอย่างด้านล่างเราตรวจสอบความพร้อมใช้งานของสี "เหลือง" ในข้อมูล ค่านี้คำนึงถึงขนาดตัวพิมพ์
DATA array_in_example;
INPUT A1 $ A2 $ A3 $ A4 $;
ARRAY COLOURS(4) A1-A4;
IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';
DATALINES;
Orange pink violet yellow
;
RUN;
PROC PRINT DATA = array_in_example;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
SAS สามารถจัดการรูปแบบข้อมูลตัวเลขได้หลากหลาย ใช้รูปแบบเหล่านี้ที่ส่วนท้ายของชื่อตัวแปรเพื่อใช้รูปแบบตัวเลขเฉพาะกับข้อมูล SAS ใช้รูปแบบตัวเลขสองประเภท หนึ่งสำหรับการอ่านรูปแบบเฉพาะของข้อมูลตัวเลขที่เรียกว่าinformat และอีกรายการหนึ่งสำหรับการแสดงข้อมูลตัวเลขในรูปแบบเฉพาะที่เรียกว่า output format.
ไวยากรณ์
ไวยากรณ์สำหรับข้อมูลตัวเลขคือ -
Varname Formatnamew.d
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Varname คือชื่อของตัวแปร
Formatname คือชื่อของชื่อรูปแบบตัวเลขที่ใช้กับตัวแปร
w คือจำนวนคอลัมน์ข้อมูลสูงสุด (รวมถึงตัวเลขหลังทศนิยมและจุดทศนิยมเอง) ที่อนุญาตให้จัดเก็บสำหรับตัวแปร
d คือจำนวนหลักทางขวาของทศนิยม
การอ่านรูปแบบตัวเลข
ด้านล่างนี้คือรายการรูปแบบที่ใช้ในการอ่านข้อมูลลงใน SAS
ป้อนรูปแบบตัวเลข
รูปแบบ | ใช้ |
---|---|
n. | จำนวนคอลัมน์สูงสุด "n" ที่ไม่มีจุดทศนิยม |
n.p | จำนวนคอลัมน์สูงสุด "n" ที่มีจุดทศนิยม "p" |
COMMAn.p | จำนวนคอลัมน์สูงสุด "n" ที่มีตำแหน่งทศนิยม "p" ซึ่งจะลบเครื่องหมายลูกน้ำหรือเครื่องหมายดอลลาร์ |
COMMAn.p | จำนวนคอลัมน์สูงสุด "n" ที่มีตำแหน่งทศนิยม "p" ซึ่งจะลบเครื่องหมายลูกน้ำหรือเครื่องหมายดอลลาร์ |
การแสดงรูปแบบตัวเลข
คล้ายกับการใช้รูปแบบขณะอ่านข้อมูลด้านล่างนี้คือรายการรูปแบบที่ใช้สำหรับแสดงข้อมูลในผลลัพธ์ของโปรแกรม SAS
รูปแบบตัวเลขเอาต์พุต
รูปแบบ | ใช้ |
---|---|
n. | เขียนจำนวนหลัก "n" สูงสุดโดยไม่มีจุดทศนิยม |
n.p | เขียนจำนวนคอลัมน์สูงสุด "np" ด้วยจุดทศนิยม "p" |
DOLLARn.p | เขียนจำนวนคอลัมน์สูงสุด "n" โดยมีจุดทศนิยม p เครื่องหมายดอลลาร์นำหน้าและเครื่องหมายจุลภาคที่ตำแหน่งที่พัน |
โปรดทราบ -
หากจำนวนหลักหลังจุดทศนิยมน้อยกว่าตัวระบุรูปแบบzeros will be appended ในตอนท้าย
หากจำนวนหลักหลังจุดทศนิยมมากกว่าตัวระบุรูปแบบตัวเลขสุดท้ายจะเป็น rounded off.
ตัวอย่าง
ตัวอย่างด้านล่างแสดงสถานการณ์ข้างต้น
DATA MYDATA1;
input x 6.; /*maxiiuum width of the data*/
format x 6.3;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA1;
RUN;
DATA MYDATA2;
input x 6.; /*maximum width of the data*/
format x 5.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA2;
RUN;
DATA MYDATA3;
input x 6.; /*maximum width of the data*/
format x DOLLAR10.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA3;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
# MYDATA1.
Obs x
1 8722.0 # Display 6 columns with zero appended after decimal.
2 93.200 # Display 6 columns with zero appended after decimal.
3 0.112 # No integers before decimal, so display 3 available digits after decimal.
4 15.116 # Display 6 columns with 3 available digits after decimal.
# MYDATA2
Obs x
1 8722 # Display 5 columns. Only 4 are available.
2 93.20 # Display 5 columns with zero appended after decimal.
3 0.11 # Display 5 columns with 2 places after decimal.
4 15.12 # Display 5 columns with 2 places after decimal.
# MYDATA3
Obs x
1 $8,722.00 # Display 10 columns with leading $ sign, comma at thousandth place and zeros appended after decimal.
2 $93.20 # Only 2 integers available before decimal and one available after the decimal. 3 $0.11 # No integers available before decimal and two available after the decimal.
4 $15.12 # Only 2 integers available before decimal and two available after the decimal.
ตัวดำเนินการใน SAS เป็นสัญลักษณ์ที่ใช้ในนิพจน์ทางคณิตศาสตร์ตรรกะหรือการเปรียบเทียบ สัญลักษณ์เหล่านี้สร้างขึ้นในภาษา SAS และสามารถรวมตัวดำเนินการหลายตัวในนิพจน์เดียวเพื่อให้ได้ผลลัพธ์สุดท้าย
ด้านล่างนี้คือรายชื่อของตัวดำเนินการประเภท SAS
- ตัวดำเนินการเลขคณิต
- ตัวดำเนินการทางตรรกะ
- ตัวดำเนินการเปรียบเทียบ
- ตัวดำเนินการขั้นต่ำ / สูงสุด
- ตัวดำเนินการเชื่อมต่อ
เราจะดูทีละคน ตัวดำเนินการจะใช้กับตัวแปรที่เป็นส่วนหนึ่งของข้อมูลที่กำลังวิเคราะห์โดยโปรแกรม SAS เสมอ
ตัวดำเนินการเลขคณิต
ตารางด้านล่างอธิบายรายละเอียดของตัวดำเนินการเลขคณิต สมมติตัวแปรข้อมูลสองตัวV1 และ V2ด้วยค่า 8 และ 4 ตามลำดับ
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
+ | ส่วนที่เพิ่มเข้าไป | V1 + V2 = 12 |
- | การลบ | V1-V2 = 4 |
* | การคูณ | V1 * V2 = 32 |
/ | แผนก | V1 / V2 = 2 |
** | การยกกำลัง | V1 ** V2 = 4096 |
ตัวอย่าง
DATA MYDATA1;
input @1 COL1 4.2 @7 COL2 3.1;
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11 11
;
PROC PRINT DATA = MYDATA1;
RUN;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ตัวดำเนินการทางตรรกะ
ตารางด้านล่างนี้อธิบายรายละเอียดของตัวดำเนินการทางตรรกะ ตัวดำเนินการเหล่านี้ประเมินค่าความจริงของนิพจน์ ดังนั้นผลลัพธ์ของตัวดำเนินการทางตรรกะจะเป็น 1 หรือ 0 เสมอสมมติว่าตัวแปรข้อมูลสองตัวV1 และ V2ด้วยค่า 8 และ 4 ตามลำดับ
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
& | ตัวดำเนินการ AND หากค่าข้อมูลทั้งสองประเมินเป็นจริงผลลัพธ์คือ 1 มิฉะนั้นจะเป็น 0 | (V1> 2 & V2> 3) ให้ 0 |
| | ตัวดำเนินการหรือ หากค่าข้อมูลใดค่าหนึ่งประเมินเป็นจริงผลลัพธ์คือ 1 มิฉะนั้นจะเป็น 0 | (V1> 9 & V2> 3) คือ 1 |
~ | ไม่ใช่ตัวดำเนินการ ผลลัพธ์ของตัวดำเนินการ NOT ในรูปแบบของนิพจน์ที่มีค่าเป็น FALSE หรือค่าที่หายไปคือ 1 มิฉะนั้นจะเป็น 0 | NOT (V1> 3) คือ 1 |
ตัวอย่าง
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1;
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = MYDATA1;
RUN;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ตัวดำเนินการเปรียบเทียบ
ตารางด้านล่างอธิบายรายละเอียดของตัวดำเนินการเปรียบเทียบ ตัวดำเนินการเหล่านี้เปรียบเทียบค่าของตัวแปรและผลลัพธ์คือค่าความจริงที่นำเสนอโดย 1 สำหรับ TRUE และ 0 สำหรับ False สมมติตัวแปรข้อมูลสองตัวV1 และ V2ด้วยค่า 8 และ 4 ตามลำดับ
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
= | ตัวดำเนินการที่เท่าเทียมกัน หากค่าข้อมูลทั้งสองเท่ากันผลลัพธ์คือ 1 มิฉะนั้นจะเป็น 0 | (V1 = 8) ให้ 1. |
^ = | ตัวดำเนินการไม่เท่ากัน หากค่าข้อมูลทั้งสองไม่เท่ากันผลลัพธ์คือ 1 มิฉะนั้นจะเป็น 0 | (V1 ^ = V2) ให้ 1. |
< | น้อยกว่าโอเปอเรเตอร์ | (V2 <V2) ให้ 1. |
<= | น้อยกว่าหรือเท่ากับโอเปอเรเตอร์ | (V2 <= 4) ให้ 1. |
> | ผู้ปฏิบัติงานที่ยิ่งใหญ่กว่า | (V2> V1) ให้ 1. |
> = | ยิ่งใหญ่กว่าหรือเท่ากับ Operator | (V2> = V1) ให้ 0 |
ใน | ตัวดำเนินการใน หากค่าของตัวแปรเท่ากับค่าใดค่าหนึ่งในรายการค่าที่กำหนดค่านั้นจะส่งกลับ 1 อย่างอื่นจะคืนค่าเป็น 0 | V1 ใน (5,7,9,8) ให้ 1. |
ตัวอย่าง
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1;
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = MYDATA1;
RUN;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ตัวดำเนินการขั้นต่ำ / สูงสุด
ตารางด้านล่างอธิบายรายละเอียดของตัวดำเนินการขั้นต่ำ / สูงสุด ตัวดำเนินการเหล่านี้เปรียบเทียบค่าของตัวแปรในแถวและค่าต่ำสุดหรือสูงสุดจากรายการค่าในแถวจะถูกส่งกลับ
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
นาที | ตัวดำเนินการขั้นต่ำ ส่งคืนค่าต่ำสุดจากรายการค่าในแถว | MIN (45.2,11.6,15.41) ให้ 11.6 |
MAX | ตัวดำเนินการ MAX ส่งคืนค่าสูงสุดจากรายการค่าในแถว | MAX (45.2,11.6,15.41) ให้ 45.2 |
ตัวอย่าง
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1 @12 COL3 6.3;
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11 11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ตัวดำเนินการเชื่อมต่อ
ตารางด้านล่างอธิบายรายละเอียดของตัวดำเนินการเชื่อมต่อ ตัวดำเนินการนี้เชื่อมต่อค่าสตริงตั้งแต่สองค่าขึ้นไป ค่าอักขระเดียวจะถูกส่งกลับ
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
|| | ตัวดำเนินการเชื่อมต่อ จะคืนค่าการเรียงต่อกันของค่าตั้งแต่สองค่าขึ้นไป | 'สวัสดี' || ' World 'ให้ Hello World |
ตัวอย่าง
DATA MYDATA1;
input COL1 $ COL2 $ COL3 $;
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ลำดับความสำคัญของตัวดำเนินการ
ลำดับความสำคัญของตัวดำเนินการระบุลำดับของการประเมินตัวดำเนินการหลายตัวที่มีอยู่ในนิพจน์ที่ซับซ้อน ตารางด้านล่างอธิบายลำดับความสำคัญของตัวดำเนินการในกลุ่ม
กลุ่ม | ใบสั่ง | สัญลักษณ์ |
---|---|---|
กลุ่ม I | จากขวาไปซ้าย | ** + - ไม่ต่ำสุด |
กลุ่ม II | ซ้ายไปขวา | * / |
กลุ่มที่สาม | ซ้ายไปขวา | + - |
กลุ่ม IV | ซ้ายไปขวา | || |
กลุ่ม V | ซ้ายไปขวา | <<= => => |
คุณอาจพบสถานการณ์เมื่อบล็อกโค้ดต้องดำเนินการหลาย ๆ ครั้ง โดยทั่วไปคำสั่งจะดำเนินการตามลำดับ - คำสั่งแรกในฟังก์ชันจะถูกเรียกใช้ก่อนตามด้วยคำสั่งที่สองและอื่น ๆ แต่เมื่อคุณต้องการให้ชุดคำสั่งเดิมดำเนินการซ้ำแล้วซ้ำเล่าเราต้องการความช่วยเหลือจากลูป
ในการวนซ้ำ SAS ทำได้โดยใช้คำสั่ง DO เรียกอีกอย่างว่าDO Loop. ด้านล่างเป็นรูปแบบทั่วไปของคำสั่ง DO loop ใน SAS
แผนภาพการไหล
ต่อไปนี้เป็นประเภทของ DO ลูปใน SAS
ซีเนียร์ | ประเภทห่วงและคำอธิบาย |
---|---|
1 | ทำดัชนี การวนซ้ำจะดำเนินต่อไปจากค่าเริ่มต้นจนถึงค่าหยุดของตัวแปรดัชนี |
2 | ทำในขณะที่ ลูปจะดำเนินต่อไปจนกว่าเงื่อนไข while จะกลายเป็นเท็จ |
3 | ดำเนินการจนถึง การวนซ้ำจะดำเนินต่อไปจนกว่าเงื่อนไข UNTIL จะกลายเป็น True |
โครงสร้างการตัดสินใจกำหนดให้โปรแกรมเมอร์ระบุเงื่อนไขอย่างน้อยหนึ่งเงื่อนไขที่จะประเมินหรือทดสอบโดยโปรแกรมพร้อมกับคำสั่งหรือคำสั่งที่จะดำเนินการหากเงื่อนไขถูกกำหนดให้เป็น trueและเป็นทางเลือกที่จะเรียกใช้คำสั่งอื่น ๆ หากเงื่อนไขถูกกำหนดให้เป็น false.
ต่อไปนี้เป็นรูปแบบทั่วไปของโครงสร้างการตัดสินใจทั่วไปที่พบในภาษาโปรแกรมส่วนใหญ่ -
SAS จัดเตรียมประเภทของงบการตัดสินใจดังต่อไปนี้ คลิกลิงก์ต่อไปนี้เพื่อตรวจสอบรายละเอียด
ซีเนียร์ | ประเภทงบและคำอธิบาย |
---|---|
1 | คำสั่ง IF อัน if statementประกอบด้วยเงื่อนไข หากเงื่อนไขเป็นจริงระบบจะดึงข้อมูลเฉพาะ |
2 | คำสั่ง IF-THEN-ELSE อัน if statement ตามด้วยคำสั่ง else ซึ่งดำเนินการเมื่อเงื่อนไขบูลีนเป็นเท็จ |
3 | คำสั่ง IF-THEN-ELSE-IF อัน if statement ตามด้วยคำสั่งอื่นซึ่งตามด้วยคำสั่ง IF-THEN อีกคู่หนึ่ง |
4 | คำสั่ง IF-THEN-DELETE อัน if statement ประกอบด้วย acondition ซึ่งเมื่อ true ลบข้อมูลเฉพาะจากการสังเกต |
SAS มีฟังก์ชันในตัวที่หลากหลายซึ่งช่วยในการวิเคราะห์และประมวลผลข้อมูล ฟังก์ชันเหล่านี้ใช้เป็นส่วนหนึ่งของคำสั่ง DATA พวกเขารับตัวแปรข้อมูลเป็นอาร์กิวเมนต์และส่งคืนผลลัพธ์ที่เก็บไว้ในตัวแปรอื่น ขึ้นอยู่กับประเภทของฟังก์ชันจำนวนอาร์กิวเมนต์ที่ใช้อาจแตกต่างกันไป บางฟังก์ชันยอมรับอาร์กิวเมนต์เป็นศูนย์ในขณะที่บางฟังก์ชันยอมรับจำนวนตัวแปรคงที่ ด้านล่างนี้คือรายการประเภทของฟังก์ชันที่ SAS มีให้
ไวยากรณ์
ไวยากรณ์ทั่วไปสำหรับการใช้ฟังก์ชันใน SAS มีดังต่อไปนี้
FUNCTIONNAME(argument1, argument2...argumentn)
ที่นี่อาร์กิวเมนต์อาจเป็นค่าคงที่ตัวแปรนิพจน์หรือฟังก์ชันอื่น
หมวดหมู่ฟังก์ชัน
ขึ้นอยู่กับการใช้งานฟังก์ชั่นใน SAS แบ่งออกเป็นด้านล่าง
- Mathematical
- วันและเวลา
- Character
- Truncation
- Miscellaneous
ฟังก์ชันทางคณิตศาสตร์
นี่คือฟังก์ชันที่ใช้ในการคำนวณทางคณิตศาสตร์กับค่าตัวแปร
ตัวอย่าง
โปรแกรม SAS ด้านล่างนี้แสดงการใช้ฟังก์ชันทางคณิตศาสตร์ที่สำคัญบางอย่าง
data Math_functions;
v1=21; v2=42; v3=13; v4=10; v5=29;
/* Get Maximum value */
max_val = MAX(v1,v2,v3,v4,v5);
/* Get Minimum value */
min_val = MIN (v1,v2,v3,v4,v5);
/* Get Median value */
med_val = MEDIAN (v1,v2,v3,v4,v5);
/* Get a random number */
rand_val = RANUNI(0);
/* Get Square root of sum of the values */
SR_val= SQRT(sum(v1,v2,v3,v4,v5));
proc print data = Math_functions noobs;
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ฟังก์ชันวันที่และเวลา
นี่คือฟังก์ชันที่ใช้ในการประมวลผลค่าวันที่และเวลา
ตัวอย่าง
โปรแกรม SAS ด้านล่างแสดงการใช้ฟังก์ชันวันที่และเวลา
data date_functions;
INPUT @1 date1 date9. @11 date2 date9.;
format date1 date9. date2 date9.;
/* Get the interval between the dates in years*/
Years_ = INTCK('YEAR',date1,date2);
/* Get the interval between the dates in months*/
months_ = INTCK('MONTH',date1,date2);
/* Get the week day from the date*/
weekday_ = WEEKDAY(date1);
/* Get Today's date in SAS date format */
today_ = TODAY();
/* Get current time in SAS time format */
time_ = time();
DATALINES;
21OCT2000 16AUG1998
01MAR2009 11JUL2012
;
proc print data = date_functions noobs;
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ฟังก์ชั่นตัวละคร
นี่คือฟังก์ชันที่ใช้ในการประมวลผลค่าอักขระหรือข้อความ
ตัวอย่าง
โปรแกรม SAS ด้านล่างนี้แสดงการใช้ฟังก์ชันอักขระ
data character_functions;
/* Convert the string into lower case */
lowcse_ = LOWCASE('HELLO');
/* Convert the string into upper case */
upcase_ = UPCASE('hello');
/* Reverse the string */
reverse_ = REVERSE('Hello');
/* Return the nth word */
nth_letter_ = SCAN('Learn SAS Now',2);
run;
proc print data = character_functions noobs;
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ฟังก์ชันการตัดทอน
นี่คือฟังก์ชันที่ใช้ในการตัดทอนค่าตัวเลข
ตัวอย่าง
โปรแกรม SAS ด้านล่างแสดงการใช้ฟังก์ชันการตัดทอน
data trunc_functions;
/* Nearest greatest integer */
ceil_ = CEIL(11.85);
/* Nearest greatest integer */
floor_ = FLOOR(11.85);
/* Integer portion of a number */
int_ = INT(32.41);
/* Round off to nearest value */
round_ = ROUND(5621.78);
run;
proc print data = trunc_functions noobs;
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ฟังก์ชันเบ็ดเตล็ด
ตอนนี้ให้เราเข้าใจฟังก์ชั่นเบ็ดเตล็ดของ SAS พร้อมตัวอย่างบางส่วน
ตัวอย่าง
โปรแกรม SAS ด้านล่างแสดงการใช้ฟังก์ชันเบ็ดเตล็ด
data misc_functions;
/* Nearest greatest integer */
state2=zipstate('01040');
/* Amortization calculation */
payment = mort(50000, . , .10/12,30*12);
proc print data = misc_functions noobs;
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
วิธีการป้อนข้อมูลใช้เพื่ออ่านข้อมูลดิบ ข้อมูลดิบอาจมาจากแหล่งภายนอกหรือจากข้อมูลในสตรีม คำสั่งอินพุตจะสร้างตัวแปรที่มีชื่อที่คุณกำหนดให้กับแต่ละฟิลด์ ดังนั้นคุณต้องสร้างตัวแปรในคำสั่งอินพุต ตัวแปรเดียวกันจะแสดงในเอาต์พุตของ SAS Dataset ด้านล่างนี้คือวิธีการป้อนข้อมูลต่างๆที่มีอยู่ใน SAS
- วิธีการป้อนรายการ
- ชื่อวิธีการป้อนข้อมูล
- วิธีการป้อนข้อมูลคอลัมน์
- วิธีการป้อนข้อมูลที่จัดรูปแบบ
รายละเอียดของวิธีการป้อนข้อมูลแต่ละวิธีอธิบายไว้ดังต่อไปนี้
วิธีการป้อนรายการ
ในวิธีนี้ตัวแปรจะแสดงรายการด้วยชนิดข้อมูล ข้อมูลดิบจะได้รับการวิเคราะห์อย่างรอบคอบเพื่อให้ลำดับของตัวแปรที่ประกาศตรงกับข้อมูล ตัวคั่น (โดยปกติคือช่องว่าง) ควรมีความสม่ำเสมอระหว่างคู่ของคอลัมน์ที่อยู่ติดกัน ข้อมูลที่ขาดหายไปจะทำให้เกิดปัญหาในผลลัพธ์เนื่องจากผลลัพธ์จะไม่ถูกต้อง
ตัวอย่าง
รหัสต่อไปนี้และเอาต์พุตแสดงการใช้วิธีการป้อนรายการ
DATA TEMP;
INPUT EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick IT
2 Dan OPS
3 Tusar IT
4 Pranab OPS
5 Rasmi FIN
;
PROC PRINT DATA = TEMP;
RUN;
ในการรันโค้ด bove เราจะได้ผลลัพธ์ต่อไปนี้
ชื่อวิธีการป้อนข้อมูล
ในวิธีนี้ตัวแปรจะแสดงรายการด้วยชนิดข้อมูล ข้อมูลดิบถูกแก้ไขให้มีการประกาศชื่อตัวแปรไว้ด้านหน้าข้อมูลที่ตรงกัน ตัวคั่น (โดยปกติคือช่องว่าง) ควรมีความสม่ำเสมอระหว่างคู่ของคอลัมน์ที่อยู่ติดกัน
ตัวอย่าง
โค้ดและเอาต์พุตต่อไปนี้แสดงการใช้ Named Input Method
DATA TEMP;
INPUT
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick DEPT = IT
EMPID = 2 ENAME = Dan DEPT = OPS
EMPID = 3 ENAME = Tusar DEPT = IT
EMPID = 4 ENAME = Pranab DEPT = OPS
EMPID = 5 ENAME = Rasmi DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;
ในการรันโค้ด bove เราจะได้ผลลัพธ์ต่อไปนี้
วิธีการป้อนข้อมูลคอลัมน์
ในวิธีนี้ตัวแปรจะแสดงรายการด้วยชนิดข้อมูลและความกว้างของคอลัมน์ซึ่งระบุค่าของข้อมูลคอลัมน์เดียว ตัวอย่างเช่นถ้าชื่อพนักงานมีอักขระสูงสุด 9 ตัวและชื่อพนักงานแต่ละคนเริ่มต้นที่คอลัมน์ที่ 10 ความกว้างของคอลัมน์สำหรับตัวแปรชื่อพนักงานจะเป็น 10-19
ตัวอย่าง
โค้ดต่อไปนี้แสดงการใช้ Column Input Method
DATA TEMP;
INPUT EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick IT
241Dan OPS
30 Sanvi IT
410Chanchal OPS
52 Piyu FIN
;
PROC PRINT DATA = TEMP;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
วิธีการป้อนข้อมูลที่จัดรูปแบบ
ในวิธีนี้ตัวแปรจะถูกอ่านจากจุดเริ่มต้นคงที่จนกว่าจะพบช่องว่าง เนื่องจากทุกตัวแปรมีจุดเริ่มต้นคงที่จำนวนคอลัมน์ระหว่างตัวแปรคู่ใด ๆ จึงกลายเป็นความกว้างของตัวแปรแรก อักขระ "@n" ใช้เพื่อระบุตำแหน่งคอลัมน์เริ่มต้นของตัวแปรเป็นคอลัมน์ที่ n
ตัวอย่าง
รหัสต่อไปนี้แสดงการใช้วิธีการป้อนข้อมูลที่จัดรูปแบบ
DATA TEMP;
INPUT @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick IT
241 Dan OPS
30 Sanvi IT
410 Chanchal OPS
52 Piyu FIN
;
PROC PRINT DATA = TEMP;
RUN;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
SAS มีคุณสมบัติการเขียนโปรแกรมที่มีประสิทธิภาพที่เรียกว่า Macrosซึ่งช่วยให้เราหลีกเลี่ยงส่วนซ้ำ ๆ ของโค้ดและใช้ซ้ำแล้วซ้ำอีกเมื่อจำเป็น นอกจากนี้ยังช่วยสร้างตัวแปรแบบไดนามิกภายในโค้ดที่สามารถรับค่าที่แตกต่างกันสำหรับอินสแตนซ์การรันที่แตกต่างกันของโค้ดเดียวกัน นอกจากนี้ยังสามารถประกาศมาโครสำหรับบล็อกโค้ดซึ่งจะถูกนำมาใช้ซ้ำหลายครั้งในลักษณะเดียวกันกับตัวแปรมาโคร เราจะเห็นทั้งสองอย่างนี้ในตัวอย่างด้านล่าง
ตัวแปรมาโคร
นี่คือตัวแปรที่เก็บค่าไว้เพื่อใช้ซ้ำแล้วซ้ำอีกโดยโปรแกรม SAS มีการประกาศเมื่อเริ่มต้นโปรแกรม SAS และจะถูกเรียกออกมาในภายหลังในเนื้อหาของโปรแกรม สามารถเป็น Global หรือ Local ในขอบเขตได้
ตัวแปร Global Macro
เรียกว่าตัวแปรมาโครส่วนกลางเนื่องจากสามารถเข้าถึงได้โดยโปรแกรม SAS ที่มีอยู่ในสภาพแวดล้อม SAS โดยทั่วไปเป็นตัวแปรที่ระบบกำหนดให้ซึ่งเข้าถึงได้โดยหลายโปรแกรม ตัวอย่างทั่วไปคือวันที่ของระบบ
ตัวอย่าง
ด้านล่างนี้เป็นตัวอย่างของตัวแปร SAS ที่เรียกว่า SYSDATE ซึ่งแสดงถึงวันที่ของระบบ พิจารณาสถานการณ์จำลองเพื่อพิมพ์วันที่ของระบบในชื่อของรายงาน SAS ทุกวันที่สร้างรายงาน ชื่อเรื่องจะแสดงวันที่และวันปัจจุบันโดยที่เราไม่ได้เข้ารหัสค่าใด ๆ ให้ เราใช้ชุดข้อมูล SAS ในตัวที่เรียกว่า CARS ที่มีอยู่ในไลบรารี SASHELP
proc print data = sashelp.cars;
where make = 'Audi' and type = 'Sports' ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ตัวแปร Local Macro
ตัวแปรเหล่านี้สามารถเข้าถึงได้โดยโปรแกรม SAS ซึ่งมีการประกาศให้เป็นส่วนหนึ่งของโปรแกรม โดยทั่วไปจะใช้เพื่อจัดหา varaibels ที่แตกต่างกันให้กับคำสั่ง SAS sl เดียวกันซึ่งสามารถประมวลผลการสังเกตที่แตกต่างกันของชุดข้อมูลได้
ไวยากรณ์
ตัวแปรโลคัลถูกทำลายด้วยไวยากรณ์ด้านล่าง
% LET (Macro Variable Name) = Value;
ที่นี่ช่อง Value สามารถรับค่าตัวเลขข้อความหรือวันที่ตามที่โปรแกรมต้องการ ชื่อตัวแปรมาโครคือตัวแปร SAS ที่ถูกต้อง
ตัวอย่าง
ตัวแปรถูกใช้โดยคำสั่ง SAS โดยใช้ & อักขระต่อท้ายชื่อตัวแปร โปรแกรมด้านล่างนี้ทำให้เราทุกคนสังเกตเห็นรถยนต์ 'Audi' และประเภท 'Sports' ในกรณีที่เราต้องการผลลัพธ์ของdifferent makeเราจำเป็นต้องเปลี่ยนค่าของตัวแปร make_nameโดยไม่ต้องเปลี่ยนส่วนอื่น ๆ ของโปรแกรม ในกรณีของโปรแกรมนำตัวแปรนี้สามารถอ้างอิงซ้ำแล้วซ้ำอีกในคำสั่ง SAS ใด ๆ
%LET make_name = 'Audi';
%LET type_name = 'Sports';
proc print data = sashelp.cars;
where make = &make_name and type = &type_name ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์เดียวกันกับโปรแกรมก่อนหน้า แต่เรามาเปลี่ยนไฟล์type name ถึง 'Wagon'และเรียกใช้โปรแกรมเดียวกัน เราจะได้ผลลัพธ์ด้านล่าง
โปรแกรมมาโคร
มาโครคือกลุ่มของคำสั่ง SAS ที่อ้างถึงด้วยชื่อและใช้ในโปรแกรมได้ทุกที่โดยใช้ชื่อนั้น เริ่มต้นด้วยคำสั่ง% MACRO และลงท้ายด้วยคำสั่ง% MEND
ไวยากรณ์
ตัวแปรท้องถิ่นถูกประกาศด้วยไวยากรณ์ด้านล่าง
# Creating a Macro program.
%MACRO <macro name>(Param1, Param2,….Paramn);
Macro Statements;
%MEND;
# Calling a Macro program.
%MacroName (Value1, Value2,…..Valuen);
ตัวอย่าง
โปรแกรมด้านล่างนี้เป็นกลุ่มของ SAT staemnets ภายใต้มาโครที่ชื่อ 'show_result'; มาโครนี้ถูกเรียกโดยคำสั่ง SAS อื่น
%MACRO show_result(make_ , type_);
proc print data = sashelp.cars;
where make = "&make_" and type = "&type_" ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
%MEND;
%show_result(BMW,SUV);
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
มาโครที่ใช้กันทั่วไป
SAS มีคำสั่ง MACRO จำนวนมากซึ่งสร้างขึ้นในภาษาโปรแกรม SAS โปรแกรมเหล่านี้ถูกใช้โดยโปรแกรม SAS อื่น ๆ โดยไม่ได้ประกาศอย่างชัดเจนตัวอย่างทั่วไปคือ - การยุติโปรแกรมเมื่อตรงตามเงื่อนไขบางอย่างหรือจับค่ารันไทม์ของตัวแปรในบันทึกโปรแกรม ด้านล่างนี้คือตัวอย่างบางส่วน
มาโคร% PUT
คำสั่งแมโครนี้เขียนข้อความหรือข้อมูลตัวแปรแมโครไปยังบันทึก SAS ในตัวอย่างด้านล่างค่าของตัวแปร "today" จะถูกเขียนลงในบันทึกของโปรแกรม
data _null_;
CALL SYMPUT ('today',
TRIM(PUT("&sysdate"d,worddate22.)));
run;
%put &today;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
ผลตอบแทนมาโคร%
การดำเนินการของแมโครนี้ทำให้เกิดการยุติตามปกติของแมโครที่กำลังดำเนินการอยู่เมื่อเงื่อนไขบางอย่างประเมินว่าเป็นจริง ในตัวอย่างด้านล่างเมื่อค่าของตัวแปร"val" กลายเป็น 10 มาโครจะยุติมิฉะนั้นจะเกิดขึ้น
%macro check_condition(val);
%if &val = 10 %then %return;
data p;
x = 34.2;
run;
%mend check_condition;
%check_condition(11) ;
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
มาโคร% END
นิยามมาโครนี้ประกอบด้วยไฟล์ %DO %WHILEลูปที่สิ้นสุดตามต้องการด้วยคำสั่ง% END ในตัวอย่างด้านล่างแมโครที่มีชื่อว่าการทดสอบรับอินพุตของผู้ใช้และรัน DO loop โดยใช้ค่าอินพุตนี้ การสิ้นสุดของลูป DO ทำได้โดยใช้คำสั่ง% end ในขณะที่การสิ้นสุดของมาโครทำได้โดยใช้คำสั่ง% mend
%macro test(finish);
%let i = 1;
%do %while (&i <&finish);
%put the value of i is &i;
%let i=%eval(&i+1);
%end;
%mend test;
%test(5)
เมื่อรันโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้
วันที่ใน SAS เป็นกรณีพิเศษของค่าตัวเลข แต่ละวันจะมีการกำหนดค่าตัวเลขเฉพาะโดยเริ่มตั้งแต่วันที่ 1 มกราคม 1960 วันที่นี้กำหนดค่าวันที่ 0 และวันที่ถัดไปมีค่าวันที่เป็น 1 เป็นต้นไป วันก่อนหน้าจนถึงวันนี้แสดงด้วย -1, -2 และอื่น ๆ ด้วยแนวทางนี้ SAS สามารถแสดงวันที่ในอนาคตและวันที่ใดก็ได้ในอดีต
เมื่อ SAS อ่านข้อมูลจากแหล่งข้อมูลจะแปลงข้อมูลที่อ่านเป็นรูปแบบวันที่เฉพาะตามที่ระบุรูปแบบวันที่ ตัวแปรในการจัดเก็บค่าวันที่ถูกประกาศด้วยข้อมูลที่เหมาะสมที่จำเป็น วันที่ส่งออกจะแสดงโดยใช้รูปแบบข้อมูลเอาต์พุต
SAS Date Informat
ข้อมูลแหล่งที่มาสามารถอ่านได้อย่างถูกต้องโดยใช้ข้อมูลวันที่ที่ระบุดังที่แสดงด้านล่าง ตัวเลขที่ส่วนท้ายของข้อมูลระบุความกว้างต่ำสุดของสตริงวันที่ที่จะอ่านอย่างสมบูรณ์โดยใช้ข้อมูล ความกว้างที่น้อยกว่าจะให้ผลลัพธ์ที่ไม่ถูกต้อง ด้วย SAS V9 จะมีรูปแบบวันที่ทั่วไปanydtdte15. ซึ่งสามารถประมวลผลการป้อนวันที่ใดก็ได้
วันที่ป้อนข้อมูล | ความกว้างของวันที่ | Informat |
---|---|---|
03/11/2014 | 10 | mmddyy 10. |
03/11/14 | 8 | mmddyy 8. |
11 ธันวาคม 2555 | 20 | worddate20. |
14 มี.ค. 2554 | 9 | วันที่ 9. |
14 มี.ค. 2554 | 11 | วันที่ 11. |
14 มี.ค. 2554 | 15 | anydtdte15. |
ตัวอย่าง
รหัสด้านล่างแสดงการอ่านรูปแบบวันที่ต่างๆ โปรดทราบว่าค่าผลลัพธ์ทั้งหมดเป็นเพียงตัวเลขเนื่องจากเราไม่ได้ใช้คำสั่งรูปแบบใด ๆ กับค่าผลลัพธ์
DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10. ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
รูปแบบเอาต์พุตวันที่ SAS
วันที่หลังจากอ่านแล้วสามารถแปลงเป็นรูปแบบอื่นได้ตามที่ต้องการโดยการแสดงผล สิ่งนี้ทำได้โดยใช้คำสั่งรูปแบบสำหรับประเภทวันที่ พวกเขาใช้รูปแบบเดียวกับข้อมูล
ตัวอย่าง
ในตัวอย่างด้านล่างวันที่ถูกอ่านในรูปแบบเดียว แต่แสดงในรูปแบบอื่น
DATA TEMP;
INPUT @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format DOJ1 date11. DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA = TEMP;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
SAS สามารถอ่านข้อมูลจากแหล่งต่างๆซึ่งรวมถึงไฟล์หลายรูปแบบ รูปแบบไฟล์ที่ใช้ในสภาพแวดล้อม SAS จะกล่าวถึงด้านล่าง
- ชุดข้อมูล ASCII (ข้อความ)
- ข้อมูลที่คั่น
- ข้อมูล Excel
- ข้อมูลตามลำดับชั้น
การอ่านชุดข้อมูล ASCII (ข้อความ)
นี่คือไฟล์ที่มีข้อมูลในรูปแบบข้อความ โดยปกติข้อมูลจะถูกคั่นด้วยช่องว่าง แต่อาจมีตัวคั่นประเภทต่างๆที่ SAS สามารถจัดการได้ ลองพิจารณาไฟล์ ASCII ที่มีข้อมูลพนักงาน เราอ่านไฟล์นี้โดยใช้ไฟล์Infile คำสั่งที่มีอยู่ใน SAS
ตัวอย่าง
ในตัวอย่างด้านล่างเราอ่านไฟล์ข้อมูลที่ชื่อ emp_data.txt จากสภาพแวดล้อมในท้องถิ่น
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt';
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
การอ่านข้อมูลที่คั่น
ไฟล์เหล่านี้คือไฟล์ข้อมูลที่ค่าคอลัมน์ถูกคั่นด้วยอักขระคั่นเช่นลูกน้ำหรือไปป์ไลน์เป็นต้นในกรณีนี้เราใช้ dlm ตัวเลือกใน infile คำให้การ.
ตัวอย่าง
ในตัวอย่างด้านล่างเราอ่านไฟล์ข้อมูลชื่อ emp.csv จากสภาพแวดล้อมภายในเครื่อง
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=",";
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
การอ่านข้อมูล Excel
SAS สามารถอ่านไฟล์ excel ได้โดยตรงโดยใช้สิ่งอำนวยความสะดวกในการนำเข้า ดังที่เห็นในบทชุดข้อมูล SAS สามารถจัดการไฟล์ได้หลากหลายประเภทรวมถึง MS excel สมมติว่าไฟล์ emp.xls พร้อมใช้งานในระบบ SAS
ตัวอย่าง
FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;
PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;
โค้ดด้านบนอ่านข้อมูลจากไฟล์ excel และให้ผลลัพธ์เหมือนกับไฟล์สองประเภทข้างต้น
การอ่านไฟล์ลำดับชั้น
ในไฟล์เหล่านี้ข้อมูลจะอยู่ในรูปแบบลำดับชั้น สำหรับการสังเกตที่ระบุมีบันทึกส่วนหัวด้านล่างซึ่งมีการกล่าวถึงบันทึกรายละเอียดมากมาย จำนวนบันทึกรายละเอียดอาจแตกต่างกันไปในแต่ละข้อสังเกต ด้านล่างนี้คือภาพประกอบของไฟล์ลำดับชั้น
ในไฟล์ด้านล่างมีรายละเอียดของพนักงานแต่ละคนในแต่ละแผนก ระเบียนแรกคือระเบียนส่วนหัวที่กล่าวถึงแผนกและระเบียนถัดไปไม่กี่ระเบียนที่เริ่มต้นด้วย DTLS คือระเบียนรายละเอียด
DEPT:IT
DTLS:1:Rick:623
DTLS:3:Mike:611
DTLS:6:Tusar:578
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452
ตัวอย่าง
ในการอ่านไฟล์ลำดับชั้นเราใช้โค้ดด้านล่างซึ่งเราระบุเร็กคอร์ดส่วนหัวด้วยคำสั่ง IF และใช้ do loop เพื่อประมวลผลบันทึกรายละเอียด
data employees(drop = Type);
length Type $ 3 Department
empID $ 3 empName $ 10 Empsal 3 ;
retain Department;
infile
'/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
input Type $ @; if Type = 'DEP' then input Department $;
else do;
input empID empName $ Empsal ;
output;
end;
run;
PROC PRINT DATA = employees;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
เช่นเดียวกับการอ่านชุดข้อมูล SAS สามารถเขียนชุดข้อมูลในรูปแบบต่างๆ สามารถเขียนข้อมูลจากไฟล์ SAS ไปยังไฟล์ข้อความปกติไฟล์เหล่านี้สามารถอ่านได้โดยโปรแกรมซอฟต์แวร์อื่น ๆ SAS ใช้PROC EXPORT เพื่อเขียนชุดข้อมูล
กระบวนการส่งออก
เป็นโพรซีเดอร์ SAS inbuilt ที่ใช้ในการเอ็กซ์พอร์ตชุดข้อมูล SAS สำหรับการเขียนข้อมูลลงในไฟล์ในรูปแบบต่างๆ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการเขียนโพรซีเดอร์ใน SAS คือ -
PROC EXPORT
DATA = libref.SAS data-set (SAS data-set-options)
OUTFILE = "filename"
DBMS = identifier LABEL(REPLACE);
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
SAS data-setคือชื่อชุดข้อมูลที่กำลังส่งออก SAS สามารถแชร์ชุดข้อมูลจากสภาพแวดล้อมกับแอปพลิเคชันอื่น ๆ โดยการสร้างไฟล์ที่ระบบปฏิบัติการต่างๆสามารถอ่านได้ ใช้ฟังก์ชัน EXPORT ในตัวเพื่อออกไฟล์ชุดข้อมูลในรูปแบบต่างๆ ในบทนี้เราจะเห็นการเขียนชุดข้อมูล SAS โดยใช้proc export พร้อมกับตัวเลือก dlm และ dbms.
SAS data-set-options ใช้เพื่อระบุชุดย่อยของคอลัมน์ที่จะส่งออก
filename คือชื่อของไฟล์ที่ข้อมูลถูกเขียนลงไป
identifier ใช้เพื่อกล่าวถึงตัวคั่นที่จะเขียนลงในไฟล์
LABEL ตัวเลือกใช้เพื่อระบุชื่อของตัวแปรที่เขียนลงในไฟล์
ตัวอย่าง
เราจะใช้ชุดข้อมูล SAS ที่มีชื่อรถยนต์ที่มีอยู่ในไลบรารี SASHELP เราส่งออกเป็นไฟล์ข้อความที่คั่นด้วยช่องว่างพร้อมรหัสดังที่แสดงในโปรแกรมต่อไปนี้
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.txt'
dbms = dlm;
delimiter = ' ';
run;
ในการรันโค้ดด้านบนเราจะเห็นผลลัพธ์เป็นไฟล์ข้อความและคลิกขวาที่มันเพื่อดูเนื้อหาดังที่แสดงด้านล่าง
การเขียนไฟล์ CSV
ในการเขียนไฟล์ที่คั่นด้วยจุลภาคเราสามารถใช้ตัวเลือก dlm ที่มีค่า "csv" รหัสต่อไปนี้เขียนไฟล์ car_data.csv
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.csv'
dbms = csv;
run;
ในการรันโค้ดด้านบนเราจะได้ผลลัพธ์ด้านล่าง
การเขียนไฟล์ที่คั่นด้วยแท็บ
ในการเขียนไฟล์ที่คั่นด้วยแท็บเราสามารถใช้ไฟล์ dlmตัวเลือกที่มีค่า "แท็บ" รหัสต่อไปนี้เขียนไฟล์car_tab.txt.
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_tab.txt'
dbms = csv;
run;
ข้อมูลสามารถเขียนเป็นไฟล์ HTML ซึ่งเราจะเห็นภายใต้บทระบบการส่งออก
ชุดข้อมูล SAS หลายชุดสามารถเชื่อมต่อกันเพื่อให้ชุดข้อมูลเดียวโดยใช้ SETคำให้การ. จำนวนการสังเกตทั้งหมดในชุดข้อมูลที่ต่อกันคือผลรวมของจำนวนการสังเกตในชุดข้อมูลดั้งเดิม ลำดับของการสังเกตเป็นลำดับ การสังเกตทั้งหมดจากชุดข้อมูลแรกตามด้วยการสังเกตทั้งหมดจากชุดข้อมูลที่สองและอื่น ๆ
ตามหลักการแล้วชุดข้อมูลการรวมทั้งหมดมีตัวแปรเหมือนกัน แต่ในกรณีที่มีจำนวนตัวแปรต่างกันตัวแปรทั้งหมดจะปรากฏขึ้นพร้อมกับค่าที่ขาดหายไปสำหรับชุดข้อมูลที่เล็กกว่า
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับคำสั่ง SET ใน SAS คือ -
SET data-set 1 data-set 2 data-set 3.....;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
data-set1,data-set2 คือชื่อชุดข้อมูลที่เขียนทีละชื่อ
ตัวอย่าง
พิจารณาข้อมูลพนักงานขององค์กรซึ่งมีอยู่ในชุดข้อมูลที่แตกต่างกันสองชุดชุดหนึ่งสำหรับแผนกไอทีและอีกชุดหนึ่งสำหรับแผนกที่ไม่ใช่ไอที เพื่อให้ได้รายละเอียดที่สมบูรณ์ของพนักงานทั้งหมดเราเชื่อมต่อทั้งสองชุดข้อมูลโดยใช้คำสั่ง SET ที่แสดงไว้ด้านล่าง
DATA ITDEPT;
INPUT empid name $ salary ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid name $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT NON_ITDEPT;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
สถานการณ์
เมื่อเรามีหลายรูปแบบในชุดข้อมูลสำหรับการเรียงต่อกันผลลัพธ์ของตัวแปรอาจแตกต่างกันได้ แต่จำนวนการสังเกตทั้งหมดในชุดข้อมูลที่เรียงต่อกันจะเป็นผลรวมของการสังเกตในแต่ละชุดข้อมูลเสมอ เราจะพิจารณาสถานการณ์ต่างๆด้านล่างเกี่ยวกับรูปแบบนี้
จำนวนตัวแปรที่แตกต่างกัน
หากชุดข้อมูลเดิมชุดหนึ่งมีจำนวนตัวแปรมากกว่าอีกชุดข้อมูลจะยังคงรวมกัน แต่ในชุดข้อมูลที่มีขนาดเล็กกว่าชุดข้อมูลเหล่านั้นจะปรากฏว่าขาดหายไป
ตัวอย่าง
ในตัวอย่างด้านล่างชุดข้อมูลแรกมีตัวแปรพิเศษชื่อ DOJ ในผลลัพธ์ค่า DOJ สำหรับชุดข้อมูลที่สองจะปรากฏว่าหายไป
DATA ITDEPT;
INPUT empid name $ salary DOJ date9. ;
DATALINES;
1 Rick 623.3 02APR2001
3 Mike 611.5 21OCT2000
6 Tusar 578.6 01MAR2009
;
RUN;
DATA NON_ITDEPT;
INPUT empid name $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT NON_ITDEPT;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
ชื่อตัวแปรที่แตกต่างกัน
ในสถานการณ์นี้ชุดข้อมูลมีจำนวนตัวแปรเท่ากัน แต่ชื่อตัวแปรแตกต่างกัน ในกรณีนั้นการเรียงต่อกันตามปกติจะสร้างตัวแปรทั้งหมดในชุดผลลัพธ์และให้ผลลัพธ์ที่ขาดหายไปสำหรับตัวแปรทั้งสองซึ่งแตกต่างกัน แม้ว่าเราจะไม่สามารถเปลี่ยนชื่อตัวแปรในชุดข้อมูลดั้งเดิมได้ แต่เราสามารถใช้ฟังก์ชัน RENAME ในชุดข้อมูลที่ต่อกันที่เราสร้างขึ้นได้ ซึ่งจะให้ผลลัพธ์เช่นเดียวกับการเรียงต่อกันตามปกติ แต่แน่นอนว่ามีชื่อตัวแปรใหม่แทนชื่อตัวแปรที่แตกต่างกันสองชื่อที่มีอยู่ในชุดข้อมูลเดิม
ตัวอย่าง
ในชุดข้อมูลตัวอย่างด้านล่าง ITDEPT มีชื่อตัวแปร ename ในขณะที่ชุดข้อมูล NON_ITDEPT มีชื่อตัวแปร empname.แต่ตัวแปรทั้งสองนี้แสดงถึงประเภทเดียวกัน (อักขระ) เราใช้RENAME ฟังก์ชันในคำสั่ง SET ดังแสดงด้านล่าง
DATA ITDEPT;
INPUT empid ename $ salary ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid empname $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT(RENAME =(ename = Employee) ) NON_ITDEPT(RENAME =(empname = Employee) );
RUN;
PROC PRINT DATA = All_Dept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
ความยาวตัวแปรต่างกัน
หากความยาวตัวแปรในชุดข้อมูลทั้งสองแตกต่างจากชุดข้อมูลที่ต่อกันจะมีค่าที่ข้อมูลบางส่วนถูกตัดทอนสำหรับตัวแปรที่มีความยาวน้อยกว่า จะเกิดขึ้นหากชุดข้อมูลแรกมีความยาวน้อยกว่า ในการแก้ปัญหานี้เราใช้ความยาวที่สูงขึ้นกับชุดข้อมูลทั้งสองดังที่แสดงด้านล่าง
ตัวอย่าง
ในตัวอย่างด้านล่างตัวแปร enameมีความยาว 5 ในชุดข้อมูลแรกและ 7 ในชุดที่สอง เมื่อเชื่อมต่อกันเราใช้คำสั่ง LENGTH ในชุดข้อมูลที่ต่อกันเพื่อตั้งค่าความยาวเคลือบเป็น 7
DATA ITDEPT;
INPUT empid 1-2 ename $ 3-7 salary 8-14 ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid 1-2 ename $ 3-9 salary 10-16 ; DATALINES; 2 Dan 515.2 4 Ryan 729.1 5 Gary 843.25 7 Pranab 632.8 8 Rasmi 722.5 RUN; DATA All_Dept; LENGTH ename $ 7 ;
SET ITDEPT NON_ITDEPT ;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
ชุดข้อมูล SAS หลายชุดสามารถรวมเข้าด้วยกันโดยยึดตามตัวแปรทั่วไปเฉพาะเพื่อให้เป็นชุดข้อมูลเดียว ซึ่งทำได้โดยใช้ไฟล์MERGE คำสั่งและ BYคำให้การ. จำนวนการสังเกตทั้งหมดในชุดข้อมูลที่ผสานมักจะน้อยกว่าผลรวมของจำนวนการสังเกตในชุดข้อมูลเดิม เป็นเพราะตัวแปรในรูปแบบข้อมูลทั้งสองชุดถูกรวมเป็นระเบียนเดียวตามเมื่อมีค่าของตัวแปรร่วมตรงกัน
มีข้อกำหนดเบื้องต้นสองประการสำหรับการรวมชุดข้อมูลที่ระบุด้านล่าง -
- ชุดข้อมูลอินพุตต้องมีตัวแปรร่วมอย่างน้อยหนึ่งตัวเพื่อรวมเข้าด้วยกัน
- ชุดข้อมูลอินพุตต้องเรียงตามตัวแปรทั่วไปที่จะใช้ในการผสาน
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับคำสั่ง MERGE และ BY ใน SAS คือ -
MERGE Data-Set 1 Data-Set 2
BY Common Variable
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Data-set1,Data-set2 คือชื่อชุดข้อมูลที่เขียนทีละชื่อ
Common Variable คือตัวแปรตามค่าที่ตรงกันซึ่งชุดข้อมูลจะถูกรวมเข้าด้วยกัน
การรวมข้อมูล
ให้เราเข้าใจการรวมข้อมูลด้วยความช่วยเหลือของตัวอย่าง
ตัวอย่าง
พิจารณาชุดข้อมูล SAS สองชุดชุดหนึ่งมีรหัสพนักงานพร้อมชื่อและเงินเดือนและอีกชุดที่มีรหัสพนักงานพร้อมรหัสพนักงานและแผนก ในกรณีนี้เพื่อให้ได้ข้อมูลที่สมบูรณ์สำหรับพนักงานแต่ละคนเราสามารถรวมชุดข้อมูลทั้งสองนี้เข้าด้วยกัน ชุดข้อมูลสุดท้ายจะยังคงมีการสังเกตหนึ่งครั้งต่อพนักงาน แต่จะมีทั้งตัวแปรเงินเดือนและแผนก
# Data set 1
ID NAME SALARY
1 Rick 623.3
2 Dan 515.2
3 Mike 611.5
4 Ryan 729.1
5 Gary 843.25
6 Tusar 578.6
7 Pranab 632.8
8 Rasmi 722.5
# Data set 2
ID DEPT
1 IT
2 OPS
3 IT
4 HR
5 FIN
6 IT
7 OPS
8 FIN
# Merged data set
ID NAME SALARY DEPT
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
ผลลัพธ์ข้างต้นทำได้โดยใช้รหัสต่อไปนี้ซึ่งใช้ตัวแปรทั่วไป (ID) ในคำสั่ง BY โปรดทราบว่าการสังเกตในทั้งสองชุดข้อมูลได้รับการจัดเรียงในคอลัมน์ ID แล้ว
DATA SALARY;
INPUT empid name $ salary ; DATALINES; 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 ; RUN; DATA DEPT; INPUT empid dEPT $ ;
DATALINES;
1 IT
2 OPS
3 IT
4 HR
5 FIN
6 IT
7 OPS
8 FIN
;
RUN;
DATA All_details;
MERGE SALARY DEPT;
BY (empid);
RUN;
PROC PRINT DATA = All_details;
RUN;
ไม่มีค่าในคอลัมน์ที่ตรงกัน
อาจมีบางกรณีที่ค่าบางค่าของตัวแปรร่วมไม่ตรงกันระหว่างชุดข้อมูล ในกรณีเช่นนี้ชุดข้อมูลยังคงรวมเข้าด้วยกัน แต่ให้ค่าที่ขาดหายไปในผลลัพธ์
ตัวอย่าง
ID NAME SALARY DEPT
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 . . IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 .
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
การรวมเฉพาะการจับคู่
เพื่อหลีกเลี่ยงค่าที่ขาดหายไปในผลลัพธ์เราสามารถพิจารณาเก็บเฉพาะการสังเกตที่มีค่าที่ตรงกันสำหรับตัวแปรทั่วไป ที่ทำได้โดยใช้INคำให้การ. คำสั่งผสานของโปรแกรม SAS จำเป็นต้องมีการเปลี่ยนแปลง
ตัวอย่าง
ในตัวอย่างด้านล่างไฟล์ IN= value เก็บเฉพาะการสังเกตโดยที่ค่าจากทั้งสองชุดข้อมูล SALARY และ DEPT การแข่งขัน.
DATA All_details;
MERGE SALARY(IN = a) DEPT(IN = b);
BY (empid);
IF a = 1 and b = 1;
RUN;
PROC PRINT DATA = All_details;
RUN;
เมื่อดำเนินการโปรแกรม SAS ข้างต้นพร้อมกับส่วนที่เปลี่ยนแปลงข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
1 Rick 623.3 IT
2 Dan 515.2 OPS
4 Ryan 729.1 HR
5 Gary 843.25 FIN
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
การย่อยชุดข้อมูล SAS หมายถึงการแยกส่วนของชุดข้อมูลโดยการเลือกตัวแปรจำนวนน้อยลงหรือจำนวนการสังเกตน้อยลงหรือทั้งสองอย่าง ในขณะที่การย่อยตัวแปรทำได้โดยใช้KEEP และ DROP คำสั่งการตั้งค่าย่อยของการสังเกตทำได้โดยใช้ DELETE คำให้การ.
นอกจากนี้ข้อมูลที่เป็นผลลัพธ์จากการดำเนินการย่อยจะถูกเก็บไว้ในชุดข้อมูลใหม่ซึ่งสามารถใช้สำหรับการวิเคราะห์เพิ่มเติมได้ การตั้งค่าย่อยส่วนใหญ่จะใช้เพื่อวัตถุประสงค์ในการวิเคราะห์ส่วนหนึ่งของชุดข้อมูลโดยไม่ใช้ตัวแปรหรือข้อสังเกตเหล่านั้นซึ่งอาจไม่เกี่ยวข้องกับการวิเคราะห์
ตัวแปรย่อย
ในวิธีนี้เราดึงตัวแปรเพียงไม่กี่ตัวจากชุดข้อมูลทั้งหมด
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับตัวแปรการตั้งค่าย่อยใน SAS คือ -
KEEP var1 var2 ... ;
DROP var1 var2 ... ;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
var1 and var2 คือชื่อตัวแปรจากชุดข้อมูลที่ต้องเก็บไว้หรือทิ้ง
ตัวอย่าง
พิจารณาชุดข้อมูล SAS ด้านล่างที่มีรายละเอียดพนักงานขององค์กร หากเราสนใจเฉพาะการรับชื่อและค่าแผนกจากชุดข้อมูลเราสามารถใช้รหัสด้านล่างนี้ได้
DATA Employee;
INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
KEEP ename DEPT;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
ผลลัพธ์เดียวกันสามารถหาได้จากการวางตัวแปรที่ไม่ต้องการ รหัสด้านล่างแสดงให้เห็นถึงสิ่งนี้
DATA Employee;
INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
DROP empid salary;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
การตั้งค่าการสังเกต
ในวิธีนี้เราดึงการสังเกตเพียงเล็กน้อยจากชุดข้อมูลทั้งหมด
ไวยากรณ์
เราใช้ PROC FREQ ซึ่งติดตามการสังเกตที่เลือกสำหรับชุดข้อมูลใหม่
ไวยากรณ์สำหรับการสังเกตการตั้งค่าย่อยคือ -
IF Var Condition THEN DELETE ;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Var คือชื่อของตัวแปรตามค่าที่การสังเกตจะถูกลบโดยใช้เงื่อนไขที่ระบุ
ตัวอย่าง
พิจารณาชุดข้อมูล SAS ด้านล่างที่มีรายละเอียดพนักงานขององค์กร หากเราสนใจเฉพาะการรับข้อมูลสำหรับพนักงานที่มีเงินเดือนมากกว่า 700 ให้ใช้รหัสด้านล่าง
DATA Employee;
INPUT empid name $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
IF salary < 700 THEN DELETE;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
บางครั้งเราต้องการแสดงข้อมูลที่วิเคราะห์ในรูปแบบที่แตกต่างจากรูปแบบที่มีอยู่แล้วในชุดข้อมูล ตัวอย่างเช่นเราต้องการเพิ่มเครื่องหมายดอลลาร์และทศนิยมสองตำแหน่งให้กับตัวแปรที่มีข้อมูลราคา หรือเราอาจต้องการแสดงตัวแปรข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่ เราสามารถใช้FORMAT เพื่อใช้รูปแบบ SAS ที่สร้างขึ้นและ PROC FORMATคือการใช้รูปแบบที่ผู้ใช้กำหนด นอกจากนี้รูปแบบเดียวยังสามารถใช้กับตัวแปรหลายตัวได้
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้รูปแบบ SAS ในตัวคือ -
format variable name format name
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
variable name คือชื่อตัวแปรที่ใช้ในชุดข้อมูล
format name คือรูปแบบข้อมูลที่จะใช้กับตัวแปร
ตัวอย่าง
ลองพิจารณาชุดข้อมูล SAS ด้านล่างที่มีรายละเอียดพนักงานขององค์กร เราต้องการแสดงชื่อทั้งหมดเป็นตัวพิมพ์ใหญ่ formatstatement ถูกใช้เพื่อบรรลุเป้าหมายนี้
DATA Employee;
INPUT empid name $ salary DEPT $ ;
format name $upcase9. ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
PROC PRINT DATA = Employee;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
การใช้ PROC FORMAT
เรายังสามารถใช้ PROC FORMATเพื่อจัดรูปแบบข้อมูล ในตัวอย่างด้านล่างเรากำหนดค่าใหม่ให้กับตัวแปร DEPT ที่ขยายชื่อของแผนก
DATA Employee;
INPUT empid name $ salary DEPT $ ; DATALINES; 1 Rick 623.3 IT 2 Dan 515.2 OPS 3 Mike 611.5 IT 4 Ryan 729.1 HR 5 Gary 843.25 FIN 6 Tusar 578.6 IT 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN ; proc format; value $DEP 'IT' = 'Information Technology'
'OPS'= 'Operations' ;
RUN;
PROC PRINT DATA = Employee;
format name $upcase9. DEPT $DEP.;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
SAS ให้การสนับสนุนอย่างกว้างขวางสำหรับฐานข้อมูลเชิงสัมพันธ์ยอดนิยมส่วนใหญ่โดยใช้แบบสอบถาม SQL ภายในโปรแกรม SAS ส่วนใหญ่ANSI SQLรองรับไวยากรณ์ ขั้นตอนPROC SQLใช้ในการประมวลผลคำสั่ง SQL โพรซีเดอร์นี้ไม่เพียง แต่ให้ผลลัพธ์ของคิวรี SQL เท่านั้น แต่ยังสามารถสร้างตารางและตัวแปร SAS ได้อีกด้วย ตัวอย่างของสถานการณ์ทั้งหมดเหล่านี้อธิบายไว้ด้านล่าง
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC SQL ใน SAS คือ -
PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
แบบสอบถาม SQL เขียนอยู่ใต้คำสั่ง PROC SQL ตามด้วยคำสั่ง QUIT
ด้านล่างเราจะดูว่าขั้นตอน SAS นี้สามารถใช้สำหรับไฟล์ CRUD (สร้างอ่านอัปเดตและลบ) การดำเนินการใน SQL
SQL สร้างการดำเนินการ
การใช้ SQL เราสามารถสร้างชุดข้อมูลใหม่ในรูปแบบข้อมูลดิบ ในตัวอย่างด้านล่างก่อนอื่นเราประกาศชุดข้อมูลชื่อ TEMP ที่มีข้อมูลดิบ จากนั้นเราเขียนแบบสอบถาม SQL เพื่อสร้างตารางจากตัวแปรของชุดข้อมูลนี้
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;
PROC PRINT data = EMPLOYEES;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การดำเนินการอ่าน SQL
การดำเนินการอ่านใน SQL เกี่ยวข้องกับการเขียนแบบสอบถาม SQL SELECT เพื่ออ่านข้อมูลจากตาราง ในโปรแกรมด้านล่างจะค้นหาชุดข้อมูล SAS ชื่อ CARS ที่มีอยู่ในไลบรารี SASHELP แบบสอบถามดึงข้อมูลบางคอลัมน์ของชุดข้อมูล
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
;
QUIT;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
SQL SELECT พร้อม WHERE Clause
โปรแกรมด้านล่างจะค้นหาชุดข้อมูล CARS ด้วยไฟล์ whereอนุประโยค ผลลัพธ์ที่ได้เราได้รับเฉพาะการสังเกตที่ทำให้เป็น 'Audi' และพิมพ์เป็น 'Sports'
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การทำงานของ SQL UPDATE
เราสามารถอัปเดตตาราง SAS โดยใช้คำสั่ง SQL Update ด้านล่างเราสร้างตารางใหม่ชื่อ EMPLOYEES2 ก่อนจากนั้นอัปเดตโดยใช้คำสั่ง SQL UPDATE
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;
PROC SQL;
UPDATE EMPLOYEES2
SET SALARY = SALARY*1.25;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การดำเนินการลบ SQL
การดำเนินการลบใน SQL เกี่ยวข้องกับการลบค่าบางอย่างออกจากตารางโดยใช้คำสั่ง SQL DELETE เรายังคงใช้ข้อมูลจากตัวอย่างข้างต้นและลบแถวออกจากตารางที่เงินเดือนของพนักงานมากกว่า 900
PROC SQL;
DELETE FROM EMPLOYEES2
WHERE SALARY > 900;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์จากโปรแกรม SAS สามารถแปลงเป็นรูปแบบที่เป็นมิตรกับผู้ใช้มากขึ้นเช่น .html หรือ PDF. ซึ่งทำได้โดยใช้ไฟล์ ODSคำสั่งที่มีอยู่ใน SAS ODS ย่อมาจากoutput delivery system.ส่วนใหญ่จะใช้เพื่อจัดรูปแบบข้อมูลผลลัพธ์ของโปรแกรม SAS เป็นรายงานที่ดีซึ่งควรดูและทำความเข้าใจ นอกจากนี้ยังช่วยแบ่งปันผลผลิตกับแพลตฟอร์มอื่น ๆ และผลิตภัณฑ์ซอฟท์แวร์ นอกจากนี้ยังสามารถรวมผลลัพธ์จากคำสั่ง PROC หลายรายการในไฟล์เดียว
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้คำสั่ง ODS ใน SAS คือ -
ODS outputtype
PATH path name
FILE = Filename and Path
STYLE = StyleName
;
PROC some proc
;
ODS outputtype CLOSE;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
PATHแสดงถึงคำสั่งที่ใช้ในกรณีของเอาต์พุต HTML ในเอาต์พุตประเภทอื่น ๆ เรารวมพา ธ ไว้ในชื่อไฟล์
Style แสดงถึงหนึ่งในสไตล์ที่สร้างขึ้นที่มีอยู่ในสภาพแวดล้อม SAS
การสร้างเอาต์พุต HTML
เราสร้างเอาต์พุต HTML โดยใช้คำสั่ง ODS HTML ในตัวอย่างด้านล่างเราสร้างไฟล์ html ในเส้นทางที่เราต้องการ เราใช้สไตล์ที่มีอยู่ในไลบรารีสไตล์ เราสามารถเห็นไฟล์เอาต์พุตในพา ธ ที่กล่าวถึงและเราสามารถดาวน์โหลดเพื่อบันทึกในสภาพแวดล้อมที่แตกต่างจากสภาพแวดล้อม SAS โปรดทราบว่าเรามีคำสั่ง proc SQL สองคำสั่งและเอาต์พุตทั้งสองจะถูกบันทึกเป็นไฟล์เดียว
ODS HTML
PATH = '/folders/myfolders/sasuser.v94/TutorialsPoint/'
FILE = 'CARS2.html'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS HTML CLOSE;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การสร้างเอาต์พุต PDF
ในตัวอย่างด้านล่างเราสร้างไฟล์ PDF ในเส้นทางที่เราต้องการ เราใช้สไตล์ที่มีอยู่ในไลบรารีสไตล์ เราสามารถเห็นไฟล์เอาต์พุตในพา ธ ที่กล่าวถึงและเราสามารถดาวน์โหลดเพื่อบันทึกในสภาพแวดล้อมที่แตกต่างจากสภาพแวดล้อม SAS โปรดทราบว่าเรามีคำสั่ง proc SQL สองคำสั่งและเอาต์พุตทั้งสองจะถูกบันทึกเป็นไฟล์เดียว
ODS PDF
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS2.pdf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS PDF CLOSE;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การสร้างผลลัพธ์ของ TRF (Word)
ในตัวอย่างด้านล่างเราสร้างไฟล์ RTF ในเส้นทางที่เราต้องการ เราใช้สไตล์ที่มีอยู่ในไลบรารีสไตล์ เราสามารถเห็นไฟล์เอาต์พุตในพา ธ ที่กล่าวถึงและเราสามารถดาวน์โหลดเพื่อบันทึกในสภาพแวดล้อมที่แตกต่างจากสภาพแวดล้อม SAS โปรดทราบว่าเรามีคำสั่ง proc SQL สองคำสั่งและเอาต์พุตทั้งสองจะถูกบันทึกเป็นไฟล์เดียว
ODS RTF
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS.rtf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS rtf CLOSE;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
การจำลองเป็นเทคนิคการคำนวณที่ใช้การคำนวณซ้ำกับตัวอย่างสุ่มที่แตกต่างกันจำนวนมากเพื่อประมาณปริมาณทางสถิติ การใช้ SAS เราสามารถจำลองข้อมูลที่ซับซ้อนซึ่งมีคุณสมบัติทางสถิติที่ระบุไว้ในระบบจริง เราใช้ซอฟต์แวร์เพื่อสร้างแบบจำลองของระบบและสร้างข้อมูลที่เป็นตัวเลขซึ่งคุณสามารถใช้เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับพฤติกรรมของระบบในโลกแห่งความเป็นจริง ส่วนหนึ่งของศิลปะในการออกแบบโมเดลจำลองด้วยคอมพิวเตอร์คือการตัดสินใจว่าด้านใดของระบบในชีวิตจริงที่จำเป็นเพื่อรวมไว้ในแบบจำลองเพื่อให้ข้อมูลที่สร้างขึ้นโดยแบบจำลองสามารถใช้ในการตัดสินใจได้อย่างมีประสิทธิภาพ เนื่องจากความซับซ้อนนี้ SAS จึงมีส่วนประกอบซอฟต์แวร์เฉพาะสำหรับการจำลอง
ส่วนประกอบซอฟต์แวร์ SAS ที่ใช้ในการสร้างการจำลอง SAS เรียกว่า SAS Simulation Studio. อินเทอร์เฟซผู้ใช้แบบกราฟิกมีชุดเครื่องมือเต็มรูปแบบสำหรับการสร้างดำเนินการและวิเคราะห์ผลลัพธ์ของแบบจำลองเหตุการณ์แบบไม่ต่อเนื่อง
การแจกแจงทางสถิติประเภทต่างๆที่สามารถใช้การจำลอง SAS ได้แสดงอยู่ด้านล่าง
- จำลองข้อมูลจากการกระจายอย่างต่อเนื่อง
- จำลองข้อมูลจากการจัดจำหน่ายที่ไม่ถูกต้อง
- จำลองข้อมูลจากการผสมผสานของการจัดจำหน่าย
- จำลองข้อมูลจากการจัดจำหน่ายที่ซับซ้อน
- จำลองข้อมูลจากการกระจายข้อมูลที่หลากหลาย
- ประมาณการกระจายตัวอย่าง
- ประเมินการลงทะเบียนโดยประมาณ
ฮิสโตแกรมคือการแสดงข้อมูลแบบกราฟิกโดยใช้แถบที่มีความสูงต่างกัน เป็นการจัดกลุ่มตัวเลขต่างๆในชุดข้อมูลออกเป็นหลายช่วง นอกจากนี้ยังแสดงถึงการประมาณความน่าจะเป็นของการแจกแจงของตัวแปรต่อเนื่อง ใน SAS thePROC UNIVARIATE ใช้ในการสร้างฮิสโทแกรมด้วยตัวเลือกด้านล่าง
ไวยากรณ์
ไวยากรณ์พื้นฐานในการสร้างฮิสโตแกรมใน SAS คือ -
PROC UNIVARAITE DATA = DATASET;
HISTOGRAM variables;
RUN;
DATASET คือชื่อของชุดข้อมูลที่ใช้
variables คือค่าที่ใช้ในการพล็อตฮิสโตแกรม
ฮิสโตแกรมอย่างง่าย
ฮิสโตแกรมอย่างง่ายถูกสร้างขึ้นโดยการระบุชื่อของตัวแปรและช่วงที่จะพิจารณาเพื่อจัดกลุ่มค่า
ตัวอย่าง
ในตัวอย่างด้านล่างเราพิจารณาค่าต่ำสุดและสูงสุดของแรงม้าตัวแปรและใช้ช่วง 50 ดังนั้นค่าจึงรวมกันเป็นกลุ่มในขั้นตอนที่ 50
proc univariate data = sashelp.cars;
histogram horsepower
/ midpoints = 176 to 350 by 50;
run;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
ฮิสโตแกรมพร้อม Curve Fitting
เราสามารถใส่เส้นโค้งการกระจายบางส่วนลงในฮิสโตแกรมได้โดยใช้ตัวเลือกเพิ่มเติม
ตัวอย่าง
ในตัวอย่างด้านล่างเราพอดีกับเส้นโค้งการแจกแจงที่มีค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานที่กล่าวถึงเป็น EST ตัวเลือกนี้ใช้และประมาณค่าพารามิเตอร์
proc univariate data = sashelp.cars noprint;
histogram horsepower
/
normal (
mu = est
sigma = est
color = blue
w = 2.5
)
barlabel = percent
midpoints = 70 to 550 by 50;
run;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิแท่งแสดงข้อมูลเป็นแท่งสี่เหลี่ยมโดยมีความยาวของแท่งเป็นสัดส่วนกับค่าของตัวแปร SAS ใช้โพรซีเดอร์PROC SGPLOTเพื่อสร้างแผนภูมิแท่ง เราสามารถวาดแท่งทั้งแบบธรรมดาและแบบเรียงซ้อนในแผนภูมิแท่ง ในแผนภูมิแท่งแต่ละแท่งสามารถกำหนดสีที่แตกต่างกันได้
ไวยากรณ์
ไวยากรณ์พื้นฐานในการสร้างแผนภูมิแท่งใน SAS คือ -
PROC SGPLOT DATA = DATASET;
VBAR variables;
RUN;
DATASET - คือชื่อของชุดข้อมูลที่ใช้
variables - คือค่าที่ใช้ในการพล็อตฮิสโตแกรม
แผนภูมิแท่งอย่างง่าย
แผนภูมิแท่งอย่างง่ายคือแผนภูมิแท่งที่แสดงตัวแปรจากชุดข้อมูลเป็นแท่ง
ตัวอย่าง
สคริปต์ด้านล่างนี้จะสร้างแผนภูมิแท่งที่แสดงความยาวของรถยนต์เป็นแท่ง
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc SGPLOT data = work.cars1;
vbar length ;
title 'Lengths of cars';
run;
quit;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิแท่งแบบเรียงซ้อน
แผนภูมิแท่งแบบเรียงซ้อนคือแผนภูมิแท่งที่มีการคำนวณตัวแปรจากชุดข้อมูลเทียบกับตัวแปรอื่น
ตัวอย่าง
สคริปต์ด้านล่างนี้จะสร้างแผนภูมิแท่งแบบเรียงซ้อนซึ่งจะคำนวณความยาวของรถยนต์สำหรับรถแต่ละประเภท เราใช้ตัวเลือกกลุ่มเพื่อระบุตัวแปรที่สอง
proc SGPLOT data = work.cars1;
vbar length /group = type ;
title 'Lengths of Cars by Types';
run;
quit;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิแท่งแบบคลัสเตอร์
แผนภูมิแท่งแบบคลัสเตอร์ถูกสร้างขึ้นเพื่อแสดงให้เห็นว่าค่าของตัวแปรกระจายไปตามวัฒนธรรมอย่างไร
ตัวอย่าง
สคริปต์ด้านล่างนี้จะสร้างแผนภูมิแท่งแบบคลัสเตอร์ซึ่งความยาวของรถจะรวมกันเป็นกลุ่มรอบประเภทรถดังนั้นเราจึงเห็นแท่งสองแท่งที่อยู่ติดกันที่ความยาว 191 แท่งหนึ่งสำหรับรถประเภท 'Sedan' และอีกแท่งสำหรับรถประเภท 'Wagon' .
proc SGPLOT data = work.cars1;
vbar length /group = type GROUPDISPLAY = CLUSTER;
title 'Cluster of Cars by Types';
run;
quit;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิวงกลมคือการแสดงค่าเป็นส่วนของวงกลมที่มีสีต่างกัน ชิ้นส่วนจะมีป้ายกำกับและตัวเลขที่ตรงกับแต่ละชิ้นจะแสดงในแผนภูมิด้วย
ใน SAS แผนภูมิวงกลมถูกสร้างขึ้นโดยใช้ PROC TEMPLATE ซึ่งใช้พารามิเตอร์เพื่อควบคุมเปอร์เซ็นต์ป้ายกำกับสีชื่อเรื่อง ฯลฯ
ไวยากรณ์
ไวยากรณ์พื้นฐานในการสร้างแผนภูมิวงกลมใน SAS คือ -
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = variable /
DATALABELLOCATION = OUTSIDE
CATEGORYDIRECTION = CLOCKWISE
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = ' ';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
variable คือค่าที่เราสร้างแผนภูมิวงกลม
แผนภูมิวงกลมอย่างง่าย
ในแผนภูมิวงกลมนี้เราใช้ตัวแปรเดียวในรูปแบบชุดข้อมูล แผนภูมิวงกลมถูกสร้างขึ้นด้วยค่าของชิ้นส่วนที่แสดงถึงเศษส่วนของจำนวนตัวแปรตามมูลค่ารวมของตัวแปร
ตัวอย่าง
ในตัวอย่างด้านล่างแต่ละชิ้นแสดงถึงเศษส่วนของประเภทรถยนต์จากจำนวนรถยนต์ทั้งหมด
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type /
DATALABELLOCATION = OUTSIDE
CATEGORYDIRECTION = CLOCKWISE
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิวงกลมพร้อมป้ายกำกับข้อมูล
ในแผนภูมิวงกลมนี้เราแสดงทั้งค่าเศษส่วนและค่าเปอร์เซ็นต์สำหรับแต่ละชิ้น เรายังเปลี่ยนตำแหน่งของป้ายกำกับให้อยู่ในแผนภูมิ รูปแบบลักษณะที่ปรากฏของแผนภูมิถูกแก้ไขโดยใช้ตัวเลือก DATASKIN ใช้หนึ่งในสไตล์ที่สร้างขึ้นซึ่งมีอยู่ในสภาพแวดล้อม SAS
ตัวอย่าง
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type /
DATALABELLOCATION = INSIDE
DATALABELCONTENT = ALL
CATEGORYDIRECTION = CLOCKWISE
DATASKIN = SHEEN
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
แผนภูมิวงกลมที่จัดกลุ่ม
ในแผนภูมิวงกลมนี้ค่าของตัวแปรที่แสดงในกราฟจะถูกจัดกลุ่มตามตัวแปรอื่นของชุดข้อมูลเดียวกัน แต่ละกลุ่มจะกลายเป็นหนึ่งวงกลมและแผนภูมิจะมีวงกลมศูนย์กลางมากเท่าจำนวนกลุ่มที่มี
ตัวอย่าง
ในตัวอย่างด้านล่างเราจัดกลุ่มแผนภูมิตามตัวแปรชื่อ "Make" เนื่องจากมีสองค่าให้เลือก ("Audi" และ "BMW") เราจึงได้วงกลมศูนย์กลางสองวงซึ่งแต่ละวงแสดงถึงประเภทรถในยี่ห้อของมันเอง
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type / Group = make
DATALABELLOCATION = INSIDE
DATALABELCONTENT = ALL
CATEGORYDIRECTION = CLOCKWISE
DATASKIN = SHEEN
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
scatterplot คือกราฟประเภทหนึ่งที่ใช้ค่าจากสองตัวแปรที่ลงจุดในระนาบคาร์ทีเซียน โดยปกติจะใช้เพื่อหาความสัมพันธ์ระหว่างสองตัวแปร ใน SAS เราใช้PROC SGSCATTER เพื่อสร้าง scatterplots
โปรดทราบว่าเราสร้างชุดข้อมูลชื่อ CARS1 ในตัวอย่างแรกและใช้ชุดข้อมูลเดียวกันสำหรับชุดข้อมูลที่ตามมาทั้งหมด ชุดข้อมูลนี้ยังคงอยู่ในไลบรารีงานจนกระทั่งสิ้นสุดเซสชัน SAS
ไวยากรณ์
ไวยากรณ์พื้นฐานในการสร้าง scatter-plot ใน SAS คือ -
PROC sgscatter DATA = DATASET;
PLOT VARIABLE_1 * VARIABLE_2
/ datalabel = VARIABLE group = VARIABLE;
RUN;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
DATASET คือชื่อของชุดข้อมูล
VARIABLE คือตัวแปรที่ใช้จากชุดข้อมูล
Scatterplot อย่างง่าย
ใน scatterplot อย่างง่ายเราเลือกตัวแปรสองตัวจากชุดข้อมูลและจัดกลุ่มตามตัวแปรที่สาม เรายังสามารถติดป้ายกำกับข้อมูล ผลลัพธ์แสดงให้เห็นว่าตัวแปรทั้งสองกระจัดกระจายอย่างไรในไฟล์Cartesian plane.
ตัวอย่าง
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
TITLE 'Scatterplot - Two Variables';
PROC sgscatter DATA = CARS1;
PLOT horsepower*Invoice
/ datalabel = make group = type grid;
title 'Horsepower vs. Invoice for car makers by types';
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
Scatterplot พร้อมการทำนาย
เราสามารถใช้พารามิเตอร์การประมาณเพื่อทำนายความแข็งแรงของความสัมพันธ์ระหว่างกันโดยการวาดวงรีรอบ ๆ ค่า เราใช้ตัวเลือกเพิ่มเติมในขั้นตอนเพื่อวาดวงรีดังที่แสดงด้านล่าง
ตัวอย่าง
proc sgscatter data = cars1;
compare y = Invoice x = (horsepower length)
/ group = type ellipse =(alpha = 0.05 type = predicted);
title
'Average Invoice vs. horsepower for cars by length';
title2
'-- with 95% prediction ellipse --'
;
format
Invoice dollar6.0;
run;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
กระจายเมทริกซ์
นอกจากนี้เรายังสามารถมี scatterplot ที่เกี่ยวข้องกับตัวแปรมากกว่าสองตัวแปรโดยการจัดกลุ่มให้เป็นคู่ ในตัวอย่างด้านล่างเราพิจารณาตัวแปรสามตัวและวาดเมทริกซ์พล็อตกระจาย เราได้เมทริกซ์ผลลัพธ์ 3 คู่
ตัวอย่าง
PROC sgscatter DATA = CARS1;
matrix horsepower invoice length
/ group = type;
title 'Horsepower vs. Invoice vs. Length for car makers by types';
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
Boxplot คือการแสดงกลุ่มข้อมูลตัวเลขแบบกราฟิกผ่านควอไทล์ พล็อตกล่องอาจมีเส้นที่ยื่นออกมาในแนวตั้งจากกล่อง (หนวด) ซึ่งแสดงถึงความแปรปรวนภายนอกควอไทล์บนและล่าง ด้านล่างและด้านบนของกล่องจะเป็นควอร์ไทล์ที่หนึ่งและสามเสมอและวงดนตรีในกล่องจะเป็นควอไทล์ที่สองเสมอ (ค่ามัธยฐาน) ใน SAS จะมีการสร้าง Boxplot อย่างง่ายโดยใช้ไฟล์PROC SGPLOT และกล่องพล็อตแบบแผงถูกสร้างขึ้นโดยใช้ PROC SGPANEL.
โปรดทราบว่าเราสร้างชุดข้อมูลชื่อ CARS1 ในตัวอย่างแรกและใช้ชุดข้อมูลเดียวกันสำหรับชุดข้อมูลที่ตามมาทั้งหมด ชุดข้อมูลนี้ยังคงอยู่ในไลบรารีงานจนกระทั่งสิ้นสุดเซสชัน SAS
ไวยากรณ์
ไวยากรณ์พื้นฐานในการสร้าง boxplot ใน SAS คือ -
PROC SGPLOT DATA = DATASET;
VBOX VARIABLE / category = VARIABLE;
RUN;
PROC SGPANEL DATA = DATASET;;
PANELBY VARIABLE;
VBOX VARIABLE> / category = VARIABLE;
RUN;
DATASET - คือชื่อของชุดข้อมูลที่ใช้
VARIABLE - คือค่าที่ใช้ในการพล็อต Boxplot
Boxplot ง่ายๆ
ใน Boxplot ธรรมดาเราเลือกตัวแปรหนึ่งตัวจากชุดข้อมูลและอีกตัวแปรหนึ่งเพื่อสร้างหมวดหมู่ ค่าของตัวแปรแรกจะถูกจัดประเภทเป็นกลุ่มจำนวนมากเท่ากับจำนวนค่าที่แตกต่างกันในตัวแปรที่สอง
ตัวอย่าง
ในตัวอย่างด้านล่างเราเลือกแรงม้าตัวแปรเป็นตัวแปรแรกและพิมพ์เป็นตัวแปรหมวดหมู่ ดังนั้นเราจึงได้บ็อกซ์พล็อตสำหรับการกระจายค่าแรงม้าสำหรับรถแต่ละประเภท
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
PROC SGPLOT DATA = CARS1;
VBOX horsepower
/ category = type;
title 'Horsepower of cars by types';
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
Boxplot ในแผงแนวตั้ง
เราสามารถแบ่ง Boxplots ของตัวแปรออกเป็นแผงแนวตั้ง (คอลัมน์) ได้มากมาย แต่ละแผงมีบ็อกซ์พล็อตสำหรับตัวแปรเชิงหมวดหมู่ทั้งหมด แต่บ็อกซ์พล็อตจะถูกจัดกลุ่มเพิ่มเติมโดยใช้ตัวแปรที่สามอีกตัวซึ่งแบ่งกราฟออกเป็นแผงต่างๆ
ตัวอย่าง
ในตัวอย่างด้านล่างเราได้จัดวางกราฟโดยใช้ตัวแปร 'make' เนื่องจากมีค่า 'make' สองค่าที่แตกต่างกันดังนั้นเราจึงได้แผงแนวตั้งสองแผง
PROC SGPANEL DATA = CARS1;
PANELBY MAKE;
VBOX horsepower / category = type;
title 'Horsepower of cars by types';
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
Boxplot ในแผงแนวนอน
เราสามารถแบ่ง Boxplots ของตัวแปรออกเป็นแผงแนวนอน (แถว) ได้มากมาย แต่ละแผงมีบ็อกซ์พล็อตสำหรับตัวแปรเชิงหมวดหมู่ทั้งหมด แต่บ็อกซ์พล็อตจะถูกจัดกลุ่มเพิ่มเติมโดยใช้ตัวแปรที่สามอีกตัวซึ่งแบ่งกราฟออกเป็นแผงต่างๆ ในตัวอย่างด้านล่างเราได้จัดวางกราฟโดยใช้ตัวแปร 'make' เนื่องจากมีค่า 'make' สองค่าที่แตกต่างกันดังนั้นเราจึงได้แผงแนวนอนสองแผง
PROC SGPANEL DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;
VBOX horsepower / category = type;
title 'Horsepower of cars by types';
RUN;
เมื่อเรารันโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -
ค่าเฉลี่ยเลขคณิตคือค่าที่ได้จากการหาค่าผลรวมของตัวแปรตัวเลขแล้วหารผลรวมด้วยจำนวนตัวแปร เรียกอีกอย่างว่าค่าเฉลี่ย ใน SAS ค่าเฉลี่ยเลขคณิตคำนวณโดยใช้PROC MEANS. การใช้ขั้นตอน SAS นี้เราสามารถค้นหาค่าเฉลี่ยของตัวแปรทั้งหมดหรือตัวแปรบางตัวของชุดข้อมูล นอกจากนี้เรายังสามารถสร้างกลุ่มและค้นหาค่าเฉลี่ยของตัวแปรของค่าเฉพาะสำหรับกลุ่มนั้น ๆ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการคำนวณค่าเฉลี่ยเลขคณิตใน SAS คือ -
PROC MEANS DATA = DATASET;
CLASS Variables ;
VAR Variables;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
DATASET - คือชื่อของชุดข้อมูลที่ใช้
Variables - คือชื่อของตัวแปรจากชุดข้อมูล
ค่าเฉลี่ยของชุดข้อมูล
ค่าเฉลี่ยของตัวแปรตัวเลขแต่ละตัวในชุดข้อมูลคำนวณโดยใช้ PROC โดยระบุเฉพาะชื่อชุดข้อมูลโดยไม่มีตัวแปรใด ๆ
ตัวอย่าง
ในตัวอย่างด้านล่างเราพบค่าเฉลี่ยของตัวแปรตัวเลขทั้งหมดในชุดข้อมูล SAS ชื่อ CARS เราระบุตัวเลขสูงสุดหลังตำแหน่งทศนิยมเป็น 2 และหาผลรวมของตัวแปรเหล่านั้นด้วย
PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC=2;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ค่าเฉลี่ยของตัวแปรที่เลือก
เราสามารถหาค่าเฉลี่ยของตัวแปรบางตัวได้โดยระบุชื่อในไฟล์ var ตัวเลือก
ตัวอย่าง
ด้านล่างเราคำนวณค่าเฉลี่ยของตัวแปรสามตัว
PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2 ;
var horsepower invoice EngineSize;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
ค่าเฉลี่ยตามชั้นเรียน
เราสามารถหาค่าเฉลี่ยของตัวแปรตัวเลขได้โดยจัดเป็นกลุ่มโดยใช้ตัวแปรอื่น ๆ
ตัวอย่าง
ในตัวอย่างด้านล่างเราจะพบค่าเฉลี่ยของแรงม้าที่แปรผันสำหรับแต่ละประเภทภายใต้ยี่ห้อรถแต่ละรุ่น
PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2;
class make type;
var horsepower;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ต่อไปนี้ -
Standard Deviation (SD) คือการวัดความแตกต่างของข้อมูลในชุดข้อมูล ในทางคณิตศาสตร์จะวัดว่าค่าแต่ละค่าอยู่ห่างไกลหรือใกล้เพียงใดกับค่าเฉลี่ยของชุดข้อมูล ค่าเบี่ยงเบนมาตรฐานที่ใกล้ 0 แสดงว่าจุดข้อมูลมีแนวโน้มที่จะใกล้เคียงกับค่าเฉลี่ยของชุดข้อมูลมากและค่าเบี่ยงเบนมาตรฐานสูงบ่งชี้ว่าจุดข้อมูลกระจายออกไปในช่วงค่าที่กว้างขึ้น
ใน SAS ค่า SD จะถูกวัดโดยใช้ PROC MEAN และ PROC SURVEYMEANS
การใช้ PROC หมายถึง
ในการวัด SD โดยใช้ proc meansเราเลือกตัวเลือก STD ในขั้นตอน PROC จะนำเอาค่า SD สำหรับตัวแปรตัวเลขแต่ละตัวที่มีอยู่ในชุดข้อมูล
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการคำนวณค่าเบี่ยงเบนมาตรฐานใน SAS คือ -
PROC means DATA = dataset STD;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset - คือชื่อของชุดข้อมูล
ตัวอย่าง
ในตัวอย่างด้านล่างเราสร้างชุดข้อมูล CARS1 จากชุดข้อมูล CARS ในไลบรารี SASHELP เราเลือกตัวเลือก STD ด้วยขั้นตอนวิธีการ PROC
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc means data = CARS1 STD;
run;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ -
การใช้ PROC SURVEYMEANS
ขั้นตอนนี้ยังใช้สำหรับการวัด SD พร้อมกับคุณสมบัติขั้นสูงบางอย่างเช่นการวัด SD สำหรับตัวแปรตามหมวดหมู่รวมถึงการประมาณการความแปรปรวน
ไวยากรณ์
ไวยากรณ์สำหรับการใช้ PROC SURVEYMEANS คือ -
PROC SURVEYMEANS options statistic-keywords ;
BY variables ;
CLASS variables ;
VAR variables ;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
BY - ระบุตัวแปรที่ใช้ในการสร้างกลุ่มการสังเกต
CLASS - ระบุตัวแปรที่ใช้สำหรับตัวแปรจัดหมวดหมู่
VAR - ระบุตัวแปรที่จะคำนวณ SD
ตัวอย่าง
ตัวอย่างด้านล่างอธิบายการใช้งาน class ตัวเลือกที่สร้างสถิติสำหรับแต่ละค่าในตัวแปรคลาส
proc surveymeans data = CARS1 STD;
class type;
var type horsepower;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ -
ใช้ตัวเลือก BY
โค้ดด้านล่างนี้เป็นตัวอย่างของตัวเลือก BY ผลลัพธ์จะถูกจัดกลุ่มสำหรับแต่ละค่าในตัวเลือก BY
ตัวอย่าง
proc surveymeans data = CARS1 STD;
var horsepower;
BY make;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;
เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์ของ make = "Audi"
ผลลัพธ์ของ make = "BMW"
การแจกแจงความถี่คือตารางแสดงความถี่ของจุดข้อมูลในชุดข้อมูล แต่ละรายการในตารางประกอบด้วยความถี่หรือจำนวนการเกิดขึ้นของค่าภายในกลุ่มหรือช่วงเวลาหนึ่ง ๆ และด้วยวิธีนี้ตารางจะสรุปการกระจายของค่าในตัวอย่าง
SAS จัดเตรียมโพรซีเดอร์ที่เรียกว่า PROC FREQ เพื่อคำนวณการแจกแจงความถี่ของจุดข้อมูลในชุดข้อมูล
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการคำนวณการแจกแจงความถี่ใน SAS คือ -
PROC FREQ DATA = Dataset ;
TABLES Variable_1 ;
BY Variable_2 ;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
Variables_1 คือชื่อตัวแปรของชุดข้อมูลที่ต้องคำนวณการแจกแจงความถี่
Variables_2 คือตัวแปรที่แบ่งประเภทของผลการแจกแจงความถี่
การกระจายความถี่ตัวแปรเดียว
เราสามารถกำหนดการแจกแจงความถี่ของตัวแปรเดียวได้โดยใช้ PROC FREQ.ในกรณีนี้ผลลัพธ์จะแสดงความถี่ของแต่ละค่าของตัวแปร ผลลัพธ์ยังแสดงการแจกแจงเปอร์เซ็นต์ความถี่สะสมและเปอร์เซ็นต์สะสม
ตัวอย่าง
ในตัวอย่างด้านล่างเราพบการแจกแจงความถี่ของแรงม้าตัวแปรสำหรับชุดข้อมูลที่ชื่อ CARS1 ซึ่งสร้างขึ้นจากไลบรารี SASHELP.CARS.เราสามารถเห็นผลลัพธ์ที่แบ่งออกเป็นสองประเภทของผลลัพธ์ หนึ่งสำหรับแต่ละยี่ห้อของรถ
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc FREQ data = CARS1 ;
tables horsepower;
by make;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การกระจายความถี่หลายตัวแปร
เราสามารถค้นหาการแจกแจงความถี่สำหรับตัวแปรหลายตัวซึ่งจัดกลุ่มให้เป็นชุดค่าผสมที่เป็นไปได้ทั้งหมด
ตัวอย่าง
ในตัวอย่างด้านล่างเราคำนวณการแจกแจงความถี่สำหรับยี่ห้อรถยนต์สำหรับ grouped by car type และการแจกแจงความถี่ของรถแต่ละประเภท grouped by each make.
proc FREQ data = CARS1 ;
tables make type;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การแจกแจงความถี่ด้วยน้ำหนัก
ด้วยตัวเลือกน้ำหนักเราสามารถคำนวณการแจกแจงความถี่เอนเอียงกับน้ำหนักของตัวแปรได้ ที่นี่ค่าของตัวแปรจะถูกนำมาใช้เป็นจำนวนการสังเกตแทนการนับมูลค่า
ตัวอย่าง
ในตัวอย่างด้านล่างเราคำนวณการแจกแจงความถี่ของตัวแปรที่สร้างและพิมพ์ด้วยน้ำหนักที่กำหนดให้กับแรงม้า
proc FREQ data = CARS1 ;
tables make type;
weight horsepower;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
Cross tabulation เกี่ยวข้องกับการสร้างตารางไขว้หรือที่เรียกว่าตารางที่อาจเกิดขึ้นโดยใช้การผสมผสานที่เป็นไปได้ทั้งหมดของตัวแปรตั้งแต่สองตัวขึ้นไป ใน SAS จะถูกสร้างขึ้นโดยใช้ไฟล์PROC FREQ พร้อมกับ TABLESตัวเลือก ตัวอย่างเช่น - หากเราต้องการความถี่ของแต่ละรุ่นสำหรับแต่ละยี่ห้อในรถยนต์แต่ละประเภทเราจำเป็นต้องใช้ตัวเลือกตารางของ PROC FREQ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ cross tabulation ใน SAS คือ -
PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
Variable_1 and Variable_2 คือชื่อตัวแปรของชุดข้อมูลที่ต้องคำนวณการแจกแจงความถี่
ตัวอย่าง
พิจารณากรณีการค้นหาประเภทรถที่มีอยู่ภายใต้รถยนต์แต่ละยี่ห้อจากชุดข้อมูล cars1 ซึ่งสร้างแบบฟอร์ม SASHELP.CARSดังแสดงด้านล่าง ในกรณีนี้เราต้องการค่าความถี่แต่ละค่าตลอดจนผลรวมของค่าความถี่ในแต่ละยี่ห้อและข้ามประเภท เราสามารถสังเกตได้ว่าผลลัพธ์แสดงค่าในแถวและคอลัมน์
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc FREQ data = CARS1;
tables make*type;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
ตารางข้าม 3 ตัวแปร
เมื่อเรามีตัวแปรสามตัวเราสามารถจัดกลุ่ม 2 ตัวแปรและข้ามตารางแต่ละตัวแปรทั้งสองนี้ด้วยตัวแปรที่สาม ดังนั้นเราจึงมีตารางกากบาทสองตาราง
ตัวอย่าง
ในตัวอย่างด้านล่างเราจะพบความถี่ของรถยนต์แต่ละประเภทและรถยนต์แต่ละรุ่นที่เกี่ยวข้องกับยี่ห้อของรถ นอกจากนี้เรายังใช้ตัวเลือก nocol และ norow เพื่อหลีกเลี่ยงค่าผลรวมและเปอร์เซ็นต์
proc FREQ data = CARS2 ;
tables make * (type model) / nocol norow nopercent;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
ตารางไขว้ของ 4 ตัวแปร
ด้วยตัวแปร 4 ตัวจำนวนชุดค่าผสมที่จับคู่จะเพิ่มขึ้นเป็น 4 ตัวแปรแต่ละตัวจากกลุ่ม 1 จะจับคู่กับตัวแปรแต่ละตัวของกลุ่ม 2
ตัวอย่าง
ในตัวอย่างด้านล่างเราจะพบความถี่ของความยาวของรถสำหรับแต่ละยี่ห้อและแต่ละรุ่น ในทำนองเดียวกันความถี่ของแรงม้าสำหรับแต่ละยี่ห้อและแต่ละรุ่น
proc FREQ data = CARS2 ;
tables (make model) * (length horsepower) / nocol norow nopercent;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การทดสอบ T ดำเนินการเพื่อคำนวณขีดจำกัดความเชื่อมั่นสำหรับหนึ่งตัวอย่างหรือสองตัวอย่างอิสระโดยการเปรียบเทียบค่าเฉลี่ยและความแตกต่างของค่าเฉลี่ย ชื่อกระบวนงาน SASPROC TTEST ใช้เพื่อทำการทดสอบ t กับตัวแปรเดียวและตัวแปรคู่
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC TTEST ใน SAS คือ -
PROC TTEST DATA = dataset;
VAR variable;
CLASS Variable;
PAIRED Variable_1 * Variable_2;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
Variable_1 and Variable_2 คือชื่อตัวแปรของชุดข้อมูลที่ใช้ในการทดสอบ t
ตัวอย่าง
ด้านล่างนี้เราจะเห็นการทดสอบตัวอย่างหนึ่งตัวอย่างซึ่งค้นหาการประมาณค่าการทดสอบ t สำหรับแรงม้าตัวแปรที่มีขีดจำกัดความมั่นใจ 95 เปอร์เซ็นต์
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc ttest data = cars1 alpha = 0.05 h0 = 0;
var horsepower;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
จับคู่ T-test
การทดสอบ T แบบจับคู่จะดำเนินการเพื่อทดสอบว่าตัวแปรตามสองตัวมีความแตกต่างกันทางสถิติหรือไม่
ตัวอย่าง
เนื่องจากความยาวและน้ำหนักของรถจะขึ้นอยู่กับแต่ละอื่น ๆ เราจึงใช้การทดสอบ T แบบจับคู่ตามที่แสดงด้านล่าง
proc ttest data = cars1 ;
paired weight*length;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
t-test สองตัวอย่าง
t-test นี้ออกแบบมาเพื่อเปรียบเทียบค่าตัวแปรเดียวกันระหว่างสองกลุ่ม
ตัวอย่าง
ในกรณีของเราเราเปรียบเทียบค่าเฉลี่ยของแรงม้าที่แปรผันระหว่างสองยี่ห้อที่แตกต่างกันของรถยนต์ ("Audi" และ "BMW")
proc ttest data = cars1 sides = 2 alpha = 0.05 h0 = 0;
title "Two sample t-test example";
class make;
var horsepower;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การวิเคราะห์สหสัมพันธ์เกี่ยวข้องกับความสัมพันธ์ระหว่างตัวแปร ค่าสัมประสิทธิ์สหสัมพันธ์เป็นการวัดความสัมพันธ์เชิงเส้นระหว่างสองตัวแปรค่าของสัมประสิทธิ์สหสัมพันธ์จะอยู่ระหว่าง -1 ถึง +1 เสมอ SAS จัดเตรียมขั้นตอนPROC CORR เพื่อหาค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรคู่หนึ่งในชุดข้อมูล
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC CORR ใน SAS คือ -
PROC CORR DATA = dataset options;
VAR variable;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
Options เป็นตัวเลือกเพิ่มเติมที่มีขั้นตอนเช่นการวางแผนเมทริกซ์เป็นต้น
Variable คือชื่อตัวแปรของชุดข้อมูลที่ใช้ในการค้นหาความสัมพันธ์
ตัวอย่าง
ค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างคู่ของตัวแปรที่มีอยู่ในชุดข้อมูลสามารถหาได้โดยใช้ชื่อของพวกเขาในคำสั่ง VAR ในตัวอย่างด้านล่างเราใช้ชุดข้อมูล CARS1 และได้ผลลัพธ์ที่แสดงค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างแรงม้าและน้ำหนัก
PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc corr data = cars1 ;
VAR horsepower weight ;
BY make;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
ความสัมพันธ์ระหว่างตัวแปรทั้งหมด
ค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรทั้งหมดที่มีอยู่ในชุดข้อมูลสามารถหาได้โดยใช้ขั้นตอนกับชื่อชุดข้อมูล
ตัวอย่าง
ในตัวอย่างด้านล่างเราใช้ชุดข้อมูล CARS1 และได้ผลลัพธ์ที่แสดงค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรแต่ละคู่
proc corr data = cars1 ;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
เมทริกซ์สหสัมพันธ์
เราสามารถรับเมทริกซ์ scatterplot ระหว่างตัวแปรได้โดยเลือกตัวเลือกเพื่อลงจุดเมทริกซ์ในไฟล์ PROC คำให้การ.
ตัวอย่าง
ในตัวอย่างด้านล่างเราจะได้เมทริกซ์ระหว่างแรงม้าและน้ำหนัก
proc corr data = cars1 plots = matrix ;
VAR horsepower weight ;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
Linear Regression ใช้เพื่อระบุความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระหนึ่งตัวหรือมากกว่า มีการเสนอแบบจำลองของความสัมพันธ์และใช้การประมาณค่าพารามิเตอร์เพื่อพัฒนาสมการการถดถอยโดยประมาณ
จากนั้นจะใช้การทดสอบต่างๆเพื่อพิจารณาว่าแบบจำลองนั้นน่าพอใจหรือไม่ หากเป็นเช่นนั้นสามารถใช้สมการการถดถอยโดยประมาณเพื่อทำนายค่าของตัวแปรตามค่าที่กำหนดสำหรับตัวแปรอิสระ ใน SAS ขั้นตอนPROC REG ใช้เพื่อค้นหาแบบจำลองการถดถอยเชิงเส้นระหว่างสองตัวแปร
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC REG ใน SAS คือ -
PROC REG DATA = dataset;
MODEL variable_1 = variable_2;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
variable_1 and variable_2 คือชื่อตัวแปรของชุดข้อมูลที่ใช้ในการค้นหาความสัมพันธ์
ตัวอย่าง
ตัวอย่างด้านล่างแสดงขั้นตอนการค้นหาความสัมพันธ์ระหว่างสองตัวแปรแรงม้าและน้ำหนักของรถโดยใช้ PROC REG. ในผลลัพธ์เราจะเห็นค่าการสกัดกั้นซึ่งสามารถใช้ในการสร้างสมการการถดถอย
PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc reg data = cars1;
model horsepower = weight ;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
โค้ดด้านบนยังให้มุมมองแบบกราฟิกของค่าประมาณต่างๆของโมเดลดังที่แสดงด้านล่าง การเป็นโพรซีเดอร์ SAS ขั้นสูงมันไม่ได้หยุดอยู่แค่การให้ค่าการสกัดกั้นเป็นผลลัพธ์
การวิเคราะห์ Bland-Altman เป็นกระบวนการตรวจสอบขอบเขตของข้อตกลงหรือความขัดแย้งระหว่างสองวิธีที่ออกแบบมาเพื่อวัดพารามิเตอร์เดียวกัน ความสัมพันธ์ที่สูงระหว่างวิธีการบ่งชี้ว่ามีการเลือกตัวอย่างที่ดีเพียงพอในการวิเคราะห์ข้อมูล ใน SAS เราสร้างแผนภาพ Bland-Altman โดยคำนวณค่าเฉลี่ยขีด จำกัด บนและขีด จำกัด ล่างของค่าตัวแปร จากนั้นเราใช้ PROC SGPLOT เพื่อสร้างพล็อต Bland-Altman
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC SGPLOT ใน SAS คือ -
PROC SGPLOT DATA = dataset;
SCATTER X = variable Y = Variable;
REFLINE value;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
SCATTER คำสั่งหยุดกราฟพล็อตการกระจายของค่าที่ให้มาในรูปแบบของ X และ Y
REFLINE สร้างเส้นอ้างอิงแนวนอนหรือแนวตั้ง
ตัวอย่าง
ในตัวอย่างด้านล่างเราได้ผลลัพธ์ของการทดลองสองครั้งที่สร้างขึ้นโดยสองวิธีที่ชื่อว่าใหม่และเก่า เราคำนวณความแตกต่างในค่าของตัวแปรและค่าเฉลี่ยของตัวแปรของการสังเกตเดียวกัน นอกจากนี้เรายังคำนวณค่าเบี่ยงเบนมาตรฐานที่จะใช้ในขีด จำกัด บนและล่างของการคำนวณ
ผลลัพธ์จะแสดงพล็อต Bland-Altman เป็นพล็อตกระจาย
data mydata;
input new old;
datalines;
31 45
27 12
11 37
36 25
14 8
27 15
3 11
62 42
38 35
20 9
35 54
62 67
48 25
77 64
45 53
32 42
16 19
15 27
22 9
8 38
24 16
59 25
;
data diffs ;
set mydata ;
/* calculate the difference */
diff = new-old ;
/* calculate the average */
mean = (new+old)/2 ;
run ;
proc print data = diffs;
run;
proc sql noprint ;
select mean(diff)-2*std(diff), mean(diff)+2*std(diff)
into :lower, :upper
from diffs ;
quit;
proc sgplot data = diffs ;
scatter x = mean y = diff;
refline 0 &upper &lower / LABEL = ("zero bias line" "95% upper limit" "95%
lower limit");
TITLE 'Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error';
run ;
quit ;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
รุ่นปรับปรุง
ในแบบจำลองขั้นสูงของโปรแกรมข้างต้นเราได้รับการปรับเส้นโค้งระดับความมั่นใจ 95 เปอร์เซ็นต์
proc sgplot data = diffs ;
reg x = new y = diff/clm clmtransparency = .5;
needle x = new y = diff/baseline = 0;
refline 0 / LABEL = ('No diff line');
TITLE 'Enhanced Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error';
run ;
quit ;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การทดสอบไคสแควร์ใช้เพื่อตรวจสอบความสัมพันธ์ระหว่างตัวแปรเชิงหมวดหมู่สองตัวแปร สามารถใช้เพื่อทดสอบทั้งขอบเขตของการพึ่งพาและขอบเขตของความเป็นอิสระระหว่างตัวแปร SAS ใช้PROC FREQ พร้อมกับตัวเลือก chisq เพื่อกำหนดผลการทดสอบ Chi-Square
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC FREQ สำหรับการทดสอบ Chi-Square ใน SAS คือ -
PROC FREQ DATA = dataset;
TABLES variables
/CHISQ TESTP = (percentage values);
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
Dataset คือชื่อของชุดข้อมูล
Variables คือชื่อตัวแปรของชุดข้อมูลที่ใช้ในการทดสอบไคสแควร์
Percentage Values ในคำสั่ง TESTP แสดงเปอร์เซ็นต์ของระดับของตัวแปร
ตัวอย่าง
ในตัวอย่างด้านล่างเราจะพิจารณาการทดสอบไคสแควร์กับตัวแปรที่มีชื่อประเภทในชุดข้อมูล SASHELP.CARS. ตัวแปรนี้มีหกระดับและเรากำหนดเปอร์เซ็นต์ให้กับแต่ละระดับตามการออกแบบของการทดสอบ
proc freq data = sashelp.cars;
tables type
/chisq
testp = (0.20 0.12 0.18 0.10 0.25 0.15);
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
นอกจากนี้เรายังได้รับแผนภูมิแท่งที่แสดงความเบี่ยงเบนของประเภทตัวแปรดังที่แสดงในภาพหน้าจอต่อไปนี้
ไคสแควร์สองทาง
การทดสอบ Chi-Square สองทางใช้เมื่อเราใช้การทดสอบกับตัวแปรสองตัวของชุดข้อมูล
ตัวอย่าง
ในตัวอย่างด้านล่างเราใช้การทดสอบไคสแควร์กับตัวแปรสองตัวที่ชื่อว่า type and origin ผลลัพธ์จะแสดงรูปแบบตารางของชุดค่าผสมทั้งหมดของตัวแปรทั้งสองนี้
proc freq data = sashelp.cars;
tables type*origin
/chisq
;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การทดสอบที่แน่นอนของฟิชเชอร์เป็นการทดสอบทางสถิติที่ใช้เพื่อตรวจสอบว่ามีการเชื่อมโยงที่ไม่ใช่เงื่อนไขระหว่างตัวแปรเชิงหมวดหมู่สองตัวแปรหรือไม่ใน SAS จะดำเนินการโดยใช้ PROC FREQ. เราใช้ตัวเลือกตารางเพื่อใช้ตัวแปรสองตัวที่อยู่ภายใต้การทดสอบของ Fisher Exact
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้การทดสอบ Fisher Exact ใน SAS คือ -
PROC FREQ DATA = dataset ;
TABLES Variable_1*Variable_2 / fisher;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
dataset คือชื่อของชุดข้อมูล
Variable_1*Variable_2 เป็นตัวแปรที่สร้างชุดข้อมูล
ใช้การทดสอบที่แน่นอนของฟิชเชอร์
ในการใช้การทดสอบที่แน่นอนของฟิชเชอร์เราเลือกตัวแปรเชิงหมวดหมู่ 2 ตัวแปรชื่อ Test1 และ Test2 และผลลัพธ์เราใช้ PROC FREQ เพื่อใช้การทดสอบที่แสดงด้านล่าง
ตัวอย่าง
data temp;
input Test1 Test2 Result @@;
datalines;
1 1 3 1 2 1 2 1 1 2 2 3
;
proc freq;
tables Test1*Test2 / fisher;
run;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การวิเคราะห์การวัดซ้ำจะใช้เมื่อสมาชิกทั้งหมดของตัวอย่างสุ่มถูกวัดภายใต้เงื่อนไขที่แตกต่างกันหลายประการ เมื่อตัวอย่างสัมผัสกับแต่ละเงื่อนไขการวัดตัวแปรตามจะถูกทำซ้ำ การใช้ ANOVA มาตรฐานในกรณีนี้ไม่เหมาะสมเนื่องจากไม่สามารถสร้างแบบจำลองความสัมพันธ์ระหว่างการวัดซ้ำได้
ควรมีความชัดเจนเกี่ยวกับความแตกต่างระหว่างไฟล์ repeated measures design และก simple multivariate design. สำหรับทั้งสองตัวอย่างสมาชิกจะได้รับการวัดหลายครั้งหรือการทดลอง แต่ในการออกแบบการวัดซ้ำการทดลองแต่ละครั้งแสดงถึงการวัดลักษณะเดียวกันภายใต้เงื่อนไขที่แตกต่างกัน
ใน SAS PROC GLM ใช้ในการวิเคราะห์การวัดซ้ำ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับ PROC GLM ใน SAS คือ -
PROC GLM DATA = dataset;
CLASS variable;
MODEL variables = group / NOUNI;
REPEATED TRIAL n;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
dataset คือชื่อของชุดข้อมูล
CLASS ให้ตัวแปรเป็นตัวแปรที่ใช้เป็นตัวแปรจำแนก
MODEL กำหนดโมเดลให้เหมาะสมโดยใช้ตัวแปรบางตัวในรูปแบบชุดข้อมูล
REPEATED กำหนดจำนวนการวัดซ้ำของแต่ละกลุ่มเพื่อทดสอบสมมติฐาน
ตัวอย่าง
ลองพิจารณาตัวอย่างด้านล่างซึ่งเรามีกลุ่มคนสองกลุ่มที่ต้องผ่านการทดสอบฤทธิ์ของยา เวลาในการเกิดปฏิกิริยาของแต่ละคนจะถูกบันทึกไว้สำหรับยาแต่ละชนิดที่ทดสอบ ที่นี่มีการทดลอง 5 ครั้งเพื่อให้คนแต่ละกลุ่มได้เห็นความแข็งแกร่งของความสัมพันธ์ระหว่างผลของยาทั้งสี่ชนิด
DATA temp;
INPUT person group $ r1 r2 r3 r4;
CARDS;
1 A 2 1 6 5
2 A 5 4 11 9
3 A 6 14 12 10
4 A 2 4 5 8
5 A 0 5 10 9
6 B 9 11 16 13
7 B 12 4 13 14
8 B 15 9 13 8
9 B 6 8 12 5
10 B 5 7 11 9
;
RUN;
PROC PRINT DATA = temp ;
RUN;
PROC GLM DATA = temp;
CLASS group;
MODEL r1-r4 = group / NOUNI ;
REPEATED trial 5;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
ANOVA ย่อมาจาก Analysis of Variance ใน SAS ทำได้โดยใช้ไฟล์PROC ANOVA. ทำการวิเคราะห์ข้อมูลจากการออกแบบการทดลองที่หลากหลาย ในกระบวนการนี้ตัวแปรตอบสนองต่อเนื่องที่เรียกว่าตัวแปรตามถูกวัดภายใต้เงื่อนไขการทดลองที่ระบุโดยตัวแปรการจำแนกซึ่งเรียกว่าตัวแปรอิสระ การเปลี่ยนแปลงในการตอบสนองจะถือว่าเกิดจากผลกระทบในการจำแนกประเภทโดยมีการบันทึกข้อผิดพลาดแบบสุ่มสำหรับรูปแบบที่เหลือ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการใช้ PROC ANOVA ใน SAS คือ -
PROC ANOVA dataset ;
CLASS Variable;
MODEL Variable1 = variable2 ;
MEANS ;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
dataset คือชื่อของชุดข้อมูล
CLASS ให้ตัวแปรเป็นตัวแปรที่ใช้เป็นตัวแปรจำแนก
MODEL กำหนดโมเดลให้เหมาะสมโดยใช้ตัวแปรบางอย่างจากชุดข้อมูล
Variable_1 and Variable_2 คือชื่อตัวแปรของชุดข้อมูลที่ใช้ในการวิเคราะห์
MEANS กำหนดประเภทของการคำนวณและการเปรียบเทียบค่าเฉลี่ย
ใช้ ANOVA
ตอนนี้ให้เราเข้าใจแนวคิดของการใช้ ANOVA ใน SAS
ตัวอย่าง
ลองพิจารณาชุดข้อมูล SASHELP.CARS ที่นี่เราศึกษาการพึ่งพาระหว่างตัวแปรประเภทรถและแรงม้า เนื่องจากประเภทรถยนต์เป็นตัวแปรที่มีค่าตามหมวดหมู่เราจึงใช้เป็นตัวแปรคลาสและใช้ตัวแปรทั้งสองนี้ใน MODEL
PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การใช้ ANOVA กับ MEANS
ตอนนี้ให้เราเข้าใจแนวคิดของการประยุกต์ใช้ ANOVA กับ MEANS ใน SAS
ตัวอย่าง
นอกจากนี้เรายังสามารถขยายโมเดลได้โดยใช้คำสั่ง MEANS ซึ่งเราใช้วิธี Studentized ของตุรกีเพื่อเปรียบเทียบค่าเฉลี่ยของรถประเภทต่างๆหมวดหมู่ของประเภทรถจะแสดงรายการด้วยค่าเฉลี่ยของแรงม้าในแต่ละประเภทพร้อมกับค่าเพิ่มเติมบางอย่างเช่น error mean square เป็นต้น
PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
MEANS type / tukey lines;
RUN;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังนี้ -
การทดสอบสมมติฐานคือการใช้สถิติเพื่อกำหนดความน่าจะเป็นที่สมมติฐานที่กำหนดจะเป็นจริง ขั้นตอนปกติของการทดสอบสมมติฐานประกอบด้วยสี่ขั้นตอนดังที่แสดงด้านล่าง
ขั้นตอนที่ 1
กำหนดสมมติฐานว่าง H0 (โดยทั่วไปว่าการสังเกตเป็นผลมาจากโอกาสบริสุทธิ์) และสมมติฐานทางเลือก H1 (โดยทั่วไปการสังเกตจะแสดงผลที่แท้จริงรวมกับองค์ประกอบของการเปลี่ยนแปลงของโอกาส)
ขั้นตอนที่ 2
ระบุสถิติการทดสอบที่สามารถใช้เพื่อประเมินความจริงของสมมติฐานว่าง
ขั้นตอนที่ 3
คำนวณค่า P ซึ่งเป็นความน่าจะเป็นที่สถิติทดสอบอย่างน้อยมีนัยสำคัญเท่าที่สังเกตได้โดยสมมติว่าสมมติฐานว่างเป็นจริง ยิ่งค่า P น้อยเท่าใดหลักฐานก็จะยิ่งเทียบกับสมมติฐานว่างได้มากขึ้นเท่านั้น
ขั้นตอนที่ 4
เปรียบเทียบค่า p กับค่านัยสำคัญที่ยอมรับได้อัลฟ่า (บางครั้งเรียกว่าค่าอัลฟา) ถ้า p <= alpha แสดงว่าผลที่สังเกตได้มีนัยสำคัญทางสถิติสมมติฐานว่างจะถูกตัดออกและสมมติฐานทางเลือกนั้นใช้ได้
ภาษาโปรแกรม SAS มีคุณสมบัติในการทดสอบสมมติฐานประเภทต่างๆดังแสดงด้านล่าง
ทดสอบ | คำอธิบาย | กระบวนการ SAS |
---|---|---|
T-Test | การทดสอบค่าทีใช้เพื่อทดสอบว่าค่าเฉลี่ยของตัวแปรหนึ่งตัวแตกต่างจากค่าสมมุติฐานอย่างมีนัยสำคัญหรือไม่นอกจากนี้เรายังพิจารณาด้วยว่าค่าความหมายสำหรับกลุ่มอิสระสองกลุ่มมีความแตกต่างกันอย่างมีนัยสำคัญหรือไม่และความหมายสำหรับกลุ่มที่ขึ้นกับหรือจับคู่มีความแตกต่างกัน | PROC TTEST |
ANOVA | นอกจากนี้ยังใช้เพื่อเปรียบเทียบวิธีการเมื่อมีตัวแปรเชิงหมวดหมู่อิสระหนึ่งตัว เราต้องการใช้ความแปรปรวนทางเดียวเมื่อทดสอบเพื่อดูว่าค่าเฉลี่ยของตัวแปรตามช่วงเวลาแตกต่างกันหรือไม่ตามตัวแปรเชิงหมวดอิสระ | PROC ANOVA |
Chi-Square | เราใช้ความดีของไคสแควร์เพื่อประเมินว่าความถี่ของตัวแปรเชิงหมวดหมู่มีแนวโน้มที่จะเกิดขึ้นเนื่องจากความบังเอิญหรือไม่ การใช้การทดสอบไคสแควร์จำเป็นหรือไม่ว่าสัดส่วนของตัวแปรเชิงหมวดหมู่เป็นค่าสมมุติฐานหรือไม่ | PROC FREQ |
Linear Regression | การถดถอยเชิงเส้นอย่างง่ายใช้เมื่อต้องการทดสอบว่าตัวแปรทำนายตัวแปรอื่นได้ดีเพียงใด การย้อนกลับเชิงเส้นหลายตัวช่วยให้สามารถทดสอบว่าตัวแปรหลายตัวทำนายตัวแปรที่สนใจได้ดีเพียงใด เมื่อใช้การถดถอยเชิงเส้นพหุคูณเราจะถือว่าตัวแปรทำนายเป็นอิสระ | PROC REG |