วิธีเปรียบเทียบสตริงใน r (3 ตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อเปรียบเทียบสตริงใน R:

วิธีที่ 1: เปรียบเทียบสองสาย

 #case-sensitive comparison
string1 == string2

#case-insensitive comparison
tolower (string1) == tolower (string2)

วิธีที่ 2: เปรียบเทียบเวกเตอร์สตริงสองตัว

 #case-sensitive comparison
identical(vector1, vector2)

#case-insensitive comparison
identical( tolower (vector1), tolower (vector2))

วิธีที่ 3: ค้นหาความคล้ายคลึงกันระหว่างเวกเตอร์สตริงสองตัว

 #find which strings in vector1 are also in vector2
vector1[vector1 %in% vector2]  

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

ตัวอย่างที่ 1: ตรวจสอบว่าเวกเตอร์สองตัวเหมือนกันหรือไม่

รหัสต่อไปนี้แสดงวิธีเปรียบเทียบสองสายใน R เพื่อตรวจสอบว่าเท่ากันหรือไม่:

 #define two strings
string1 <- "Mavericks"
string2 <- "mavericks"

#case-sensitive comparison
string1 == string2

[1] FALSE

#case-insensitive comparison
tolower (string1) == tolower (string2)

[1] TRUE

การเปรียบเทียบแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะคืนค่า FALSE เนื่องจากทั้งสองสตริงไม่เหมือนกันทุกประการ

อย่างไรก็ตาม การเปรียบเทียบโดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะคืนค่า TRUE เนื่องจากทั้งสองสตริงมีอักขระเดียวกันในลำดับเดียวกัน โดยไม่คำนึงถึงตัวพิมพ์

ตัวอย่างที่ 2: เปรียบเทียบเวกเตอร์สตริงสองตัว

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน เหมือนกัน() เพื่อตรวจสอบว่าเวกเตอร์สตริงสองตัวเท่ากันหรือไม่:

 #define two vectors of strings
vector1 <- c("hey", "hello", "HI")
vector2 <- c("hey", "hello", "hi")

#case-sensitive comparison
identical(vector1, vector2)

[1] FALSE

#case-insensitive comparison
identical( tolower (vector1), tolower (vector2))

[1] TRUE

การเปรียบเทียบแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะส่งกลับค่า FALSE เนื่องจากเวกเตอร์สองตัวไม่มีสตริงที่เหมือนกันทุกประการในกรณีเดียวกัน

อย่างไรก็ตาม การเปรียบเทียบแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะคืนค่า TRUE เนื่องจากเวกเตอร์ทั้งสองมีสตริงเดียวกัน โดยไม่คำนึงถึงตัวพิมพ์

ตัวอย่างที่ 3: การค้นหาความคล้ายคลึงกันระหว่างเวกเตอร์สตริงสองตัว

รหัสต่อไปนี้แสดงวิธีใช้ตัวดำเนินการ %in% เพื่อค้นหาว่าสตริงใดในเวกเตอร์หนึ่งเป็นของเวกเตอร์อื่น:

 #define two vectors of strings
vector1 <- c("hey", "hello", "greetings")
vector2 <- c("hey", "hello", "hi")

#find which strings in vector1 are also in vector2
vector1[vector1 %in% vector2]

[1] “hey” “hello”

จากผลลัพธ์ เราจะเห็นว่าสตริง “เฮ้” และ “สวัสดี” มีอยู่ทั้งใน vector1 และ vector2

ที่เกี่ยวข้อง: วิธีใช้ตัวดำเนินการ %in% ใน R

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

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

วิธีเปรียบเทียบสองคอลัมน์ใน R
วิธีเปรียบเทียบเวกเตอร์สองตัวใน R
วิธีค้นหาตำแหน่งอักขระในสตริงใน R
วิธีแปลงเวกเตอร์เป็นสตริงใน R

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

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