วิธีใช้ฟังก์ชัน setdiff ใน r (พร้อมตัวอย่าง)
ฟังก์ชัน setdiff() ใน R สามารถใช้ค้นหาความแตกต่างระหว่างสองชุดได้ ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:
setdiff(x,y)
ทอง:
- x, y: เวกเตอร์หรือกรอบข้อมูลที่มีลำดับขององค์ประกอบ
บทช่วยสอนนี้มีตัวอย่างการใช้งานฟังก์ชันนี้ในทางปฏิบัติหลายตัวอย่าง
ตัวอย่างที่ 1: Setdiff พร้อมเวกเตอร์ตัวเลข
โค้ดต่อไปนี้แสดงวิธีใช้ setdiff() เพื่อระบุค่าทั้งหมดในเวกเตอร์ a ที่ไม่ปรากฏในเวกเตอร์ b :
#definevectors a <- c(1, 3, 4, 5, 9, 10) b <- c(1, 2, 3, 4, 5, 6) #find all values in a that do not occur in b setdiff (a,b) [1] 9 10
มีสองค่าที่ปรากฏในเวกเตอร์ a ที่ไม่ปรากฏในเวกเตอร์ b : 9 และ 10 .
หากเรากลับลำดับของเวกเตอร์ในฟังก์ชัน setdiff() เราสามารถระบุค่าทั้งหมดในเวกเตอร์ b ที่ไม่ปรากฏในเวกเตอร์ a แทน :
#find all values in b that do not occur in a setdiff (b,a) [1] 2 6
มีสองค่าที่ปรากฏในเวกเตอร์ b ซึ่งไม่ปรากฏในเวกเตอร์ a : 2 และ 6
ตัวอย่างที่ 2: Setdiff พร้อมเวกเตอร์อักขระ
โค้ดต่อไปนี้แสดงวิธีใช้ setdiff() เพื่อระบุค่าทั้งหมดในเวกเตอร์ char1 ที่ไม่ปรากฏในเวกเตอร์ char2 :
#define character vectors char1 <- c('A', 'B', 'C', 'D', 'E') char2 <- c('A', 'B', 'E', 'F', 'G') #find all values in char1 that do not occur in char2 setdiff (char1, char2) [1] “C” “D”
ตัวอย่างที่ 3: Setdiff พร้อมเฟรมข้อมูล
รหัสต่อไปนี้แสดงวิธีใช้ setdiff() เพื่อระบุค่าทั้งหมดในคอลัมน์กรอบข้อมูลที่ไม่ปรากฏในคอลัมน์เดียวกันของกรอบข้อมูลที่สอง:
#define data frames df1 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 94, 104)) df2 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 98, 99)) #find differences between the points columns in the two data frames setdiff (df1$points, df2$points) [1] 94 104
เราจะเห็นว่าค่า 94 และ 104 ปรากฏในคอลัมน์จุดของกรอบข้อมูลแรก แต่ไม่ปรากฏในคอลัมน์จุดของกรอบข้อมูลที่สอง
แหล่งข้อมูลเพิ่มเติม
วิธีรวมคอลัมน์เฉพาะใน R
วิธีรวมแถวเฉพาะใน R
วิธีดำเนินการจับคู่สตริงบางส่วนใน R