Sas: จะผสานได้อย่างไรถ้า a ไม่ใช่ b
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อรวมชุดข้อมูลสองชุดใน SAS และส่งคืนเฉพาะแถวที่มีค่าอยู่ในชุดข้อมูลชุดแรก ไม่ใช่ชุดที่สอง:
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
ตัวอย่างนี้จะผสานชุดข้อมูลที่เรียกว่า data1 และ data2 และส่งคืนเฉพาะแถวที่มีค่าอยู่ใน data1 ไม่ใช่ data2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: รวมสองชุดข้อมูลใน SAS โดยใช้ If A Not B
สมมติว่าเรามีชุดข้อมูลสองชุดต่อไปนี้ใน SAS ซึ่งมีข้อมูลเกี่ยวกับพนักงานขายของบริษัท:
/*create first dataset*/
data data1;
inputIDGender $;
datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;
title "data1";
proc print data = data1;
/*create second dataset*/
data data2;
input IDSales;
datalines ;
1 22
2 15
4 29
6 31
7 20
8 13
;
run ;
title "data2";
proc print data = data2;
หากเราใช้คำสั่ง ผสาน ต่อไปนี้เพื่อรวมชุดข้อมูลทั้งสองชุดตามค่าของคอลัมน์ ID แถวทั้งหมดจะถูกส่งกลับจากชุดข้อมูลทั้งสองชุด:
/*perform merge*/
data final_data;
merge data1 data2;
byID ;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
อย่างไรก็ตาม เราสามารถใช้คำสั่ง IN เพื่อส่งคืนเฉพาะแถวที่มีค่าอยู่ในชุดข้อมูลแรก ไม่ใช่ ชุดข้อมูลที่สอง:
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
โปรดทราบว่าระบบจะส่งคืนเฉพาะแถวที่มีค่าอยู่ในชุดข้อมูลแรกและไม่ใช่ชุดข้อมูลที่สอง
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับคำสั่ง การรวม SAS ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน SAS:
วิธีเข้าร่วมซ้ายใน SAS
วิธีการเข้าร่วมภายในใน SAS
วิธีการเข้าร่วมภายนอกใน SAS