วิธีเปรียบเทียบสตริงใน 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