Sas: กรองแถวที่มีสตริง


คุณสามารถใช้วิธีการต่อไปนี้เพื่อกรองชุดข้อมูล SAS สำหรับแถวที่มีสตริงบางอย่าง:

วิธีที่ 1: กรองแถวที่มีสตริงเฉพาะ

 /*filter rows where var1 contains "string1"*/
data specific_data;
    set original_data;
    where var1 contains ' string1 ';
run ;

วิธีที่ 2: กรองแถวที่มีหนึ่งสายจากหลาย ๆ สาย

 /*filter rows where var1 contains "string1", "string2", or "string3"*/
data specific_data;
    set original_data;
    where var1 in (' string1 ', ' string2 ', ' string3 ');
run ;

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับชุดข้อมูลต่อไปนี้ใน SAS:

 /*create dataset*/
data nba_data;
    input team $points;
    datalines ;
Mavs 95
Spurs 99
Warriors 104
Rockets 98
Heat 95
Nets 90
Magic 99
Cavs 106
;
run ;

/*view dataset*/
proc print data =nba_data;

วิธีที่ 1: กรองแถวที่มีสตริงเฉพาะ

รหัสต่อไปนี้แสดงวิธีการกรองชุดข้อมูลสำหรับแถวที่มีสตริง “avs” ในคอลัมน์ ทีม :

 /*filter rows where team contains the string 'avs'*/
data specific_data;
    set nba_data;
    where team contains ' avs ';
run ;

/*view resulting rows*/
proc print data = specific_data;

มีเพียงสองบรรทัดที่แสดงคือคอลัมน์ ทีม มี “avs” อยู่ในชื่อ

วิธีที่ 2: กรองแถวที่มีหนึ่งในหลายสตริง

รหัสต่อไปนี้แสดงวิธีการกรองชุดข้อมูลสำหรับแถวที่มีสตริง “Mavs”, “Nets” หรือ “Rockets” ในคอลัมน์ ทีม :

 /*filter rows where team contains the string 'Mavs', 'Nets', or 'Rockets'*/
data specific_data;
    set nba_data;
    where team in (' Mavs ', ' Nets ', ' Rockets ');
run ;

/*view resulting rows*/
proc print data = specific_data;

ชุดข้อมูลผลลัพธ์จะแสดงเฉพาะแถวที่คอลัมน์ ทีม มีหนึ่งในสามสตริงที่เราระบุ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน SAS:

วิธีทำให้ข้อมูลเป็นมาตรฐานใน SAS
วิธีเปลี่ยนชื่อตัวแปรใน SAS
วิธีลบรายการที่ซ้ำกันใน SAS
วิธีแทนที่ค่าที่หายไปด้วยศูนย์ใน SAS

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

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