SAS - จัดเรียงชุดข้อมูล
ชุดข้อมูลใน SAS สามารถจัดเรียงตามตัวแปรใด ๆ ที่มีอยู่ สิ่งนี้ช่วยทั้งในการวิเคราะห์ข้อมูลและดำเนินการตัวเลือกอื่น ๆ เช่นการรวมเป็นต้นการเรียงลำดับอาจเกิดขึ้นกับตัวแปรเดียวและหลายตัวแปร ขั้นตอน SAS ที่ใช้เพื่อดำเนินการเรียงลำดับในชุดข้อมูล SAS ถูกตั้งชื่อPROC SORT. ผลลัพธ์หลังจากการเรียงลำดับจะถูกเก็บไว้ในชุดข้อมูลใหม่และชุดข้อมูลเดิมจะไม่เปลี่ยนแปลง
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับการดำเนินการจัดเรียงในชุดข้อมูลใน SAS คือ -
PROC SORT DATA = original dataset OUT = Sorted dataset;
BY variable name;
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
variable name คือชื่อคอลัมน์ที่การเรียงลำดับเกิดขึ้น
Original dataset คือชื่อชุดข้อมูลที่จะจัดเรียง
Sorted dataset คือชื่อชุดข้อมูลหลังจากจัดเรียงแล้ว
ตัวอย่าง
ลองพิจารณาชุดข้อมูล SAS ต่อไปนี้ที่มีรายละเอียดพนักงานขององค์กร เราสามารถจัดเรียงชุดข้อมูลเกี่ยวกับเงินเดือนโดยใช้รหัสที่ระบุด้านล่าง
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;
PROC SORT DATA = Employee OUT = Sorted_sal ;
BY salary;
RUN ;
PROC PRINT DATA = Sorted_sal;
RUN ;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
การเรียงลำดับย้อนกลับ
ตัวเลือกการจัดเรียงเริ่มต้นจะเรียงลำดับจากน้อยไปมากซึ่งหมายความว่าการสังเกตจะถูกจัดเรียงตามค่าที่ต่ำกว่าถึงสูงกว่าของตัวแปรที่เรียง แต่เราอาจต้องการให้การเรียงลำดับเกิดขึ้นจากน้อยไปมาก
ตัวอย่าง
ในโค้ดด้านล่างการเรียงลำดับย้อนกลับทำได้โดยใช้คำสั่ง DESCENDING
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;
PROC SORT DATA = Employee OUT = Sorted_sal_reverse ;
BY DESCENDING salary;
RUN ;
PROC PRINT DATA = Sorted_sal_reverse;
RUN ;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้
การจัดเรียงตัวแปรหลายตัว
การเรียงลำดับสามารถนำไปใช้กับตัวแปรหลายตัวโดยใช้กับคำสั่ง BY ตัวแปรจะเรียงลำดับตามลำดับความสำคัญจากซ้ายไปขวา
ตัวอย่าง
ในโค้ดด้านล่างชุดข้อมูลจะถูกจัดเรียงเป็นอันดับแรกในชื่อแผนกตัวแปรและถัดจากเงินเดือนชื่อตัวแปร
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;
PROC SORT DATA = Employee OUT = Sorted_dept_sal ;
BY salary DEPT;
RUN ;
PROC PRINT DATA = Sorted_dept_sal;
RUN ;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้