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