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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *