ตอบ: ตรวจสอบว่าแถวของเฟรมข้อมูลหนึ่งมีอยู่ในเฟรมอื่นหรือไม่
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มคอลัมน์ใหม่ให้กับกรอบข้อมูลใน R ที่ระบุว่าแต่ละแถวมีอยู่ในกรอบข้อมูลอื่นหรือไม่:
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)
ไวยากรณ์เฉพาะนี้จะเพิ่มคอลัมน์ที่เรียกว่า มีอยู่ ให้กับกรอบข้อมูลที่เรียกว่า df1 ซึ่งมี TRUE หรือ FALSE เพื่อระบุว่าแต่ละแถวใน df1 มีอยู่ในกรอบข้อมูลอื่นที่เรียกว่า df2 หรือไม่
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ตรวจสอบว่าแถวจากเฟรมข้อมูลหนึ่งมีอยู่ในอีกเฟรมหนึ่งใน R
สมมติว่าเรามีเฟรมข้อมูลสองเฟรมต่อไปนี้ใน R:
#create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
dots=c(12, 15, 22, 29, 24))
#view first data frame
df1
team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24
#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
dots=c(12, 29, 15, 19, 10))
#view second data frame
df2
team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มคอลัมน์ที่เรียกว่า มีอยู่ ให้กับกรอบข้อมูลแรกที่ระบุว่าแต่ละแถวมีอยู่ในกรอบข้อมูลที่สองหรือไม่:
#add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)
#view updated data frame
df1
team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE
คอลัมน์ใหม่ ที่มีอยู่ บ่งชี้ว่าแต่ละแถวในกรอบข้อมูลแรกมีอยู่ในกรอบข้อมูลที่สองหรือไม่
จากผลลัพธ์เราจะเห็นได้ว่า:
- บรรทัดแรกของ df1 มีอยู่ใน df2
- บรรทัดที่สองของ df1 ไม่มีอยู่ใน df2
- บรรทัดที่สามของ df1 ไม่มีอยู่ใน df2
และอื่นๆ
โปรดทราบว่าคุณยังสามารถใช้ is.numeric() เพื่อแสดง 1 และ 0 แทน TRUE หรือ FALSE ในคอลัมน์ที่มีอยู่:
#add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))
#view updated data frame
df1
team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0
ค่า 1 บ่งชี้ว่ามีแถวจากบล็อกข้อมูลแรกอยู่ในบล็อกที่สอง
ในทางกลับกัน ค่า 0 บ่งชี้ว่าแถวในกรอบข้อมูลแรกไม่มีอยู่ในกรอบข้อมูลที่สอง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
ตอบ: จะตรวจสอบได้อย่างไรว่าหลายคอลัมน์เท่ากัน
ตอบ: วิธีการเลือกแถวเดี่ยวใน data frame
ตอบ: วิธีการจำลองแถวในกรอบข้อมูล