ตอบ: ตรวจสอบว่าแถวของเฟรมข้อมูลหนึ่งมีอยู่ในเฟรมอื่นหรือไม่


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มคอลัมน์ใหม่ให้กับกรอบข้อมูลใน 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
ตอบ: วิธีการจำลองแถวในกรอบข้อมูล

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

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