SAS - ผสานชุดข้อมูล
ชุดข้อมูล 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;
ไม่มีค่าในคอลัมน์ที่ตรงกัน
อาจมีบางกรณีที่ค่าบางค่าของตัวแปรร่วมจะไม่ตรงกันระหว่างชุดข้อมูล ในกรณีเช่นนี้ชุดข้อมูลยังคงรวมเข้าด้วยกัน แต่ให้ค่าที่ขาดหายไปในผลลัพธ์
ตัวอย่าง
พิจารณากรณีที่รหัสพนักงาน 3 หายไปจากชุดข้อมูลเงินเดือนและรหัสพนักงาน 6 ชุดข้อมูลฟอร์มหายไป DEPT เมื่อใช้รหัสด้านบนเราจะได้ผลลัพธ์ด้านล่าง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