ตอบ: วิธีค้นหาแถวที่ไม่ซ้ำในหลายคอลัมน์


คุณสามารถใช้วิธีการต่อไปนี้เพื่อค้นหาแถวที่ไม่ซ้ำกันในหลายคอลัมน์ของกรอบข้อมูลใน R:

วิธีที่ 1: ค้นหาแถวที่ไม่ซ้ำกันในหลายคอลัมน์ (ลบคอลัมน์อื่นออก)

 df_unique <- unique(df[c(' col1 ', ' col2 ')])

วิธีที่ 2: ค้นหาแถวที่ไม่ซ้ำกันในหลายคอลัมน์ (เก็บคอลัมน์อื่นไว้)

 df_unique <- df[!duplicated(df[c(' col1 ', ' col2 ')]),]

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

 #create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
                 pos=c('G', 'G', 'F', 'G', 'F', 'F'),
                 dots=c(33, 28, 31, 39, 34, 40))

#view data frame
df

  conf pos points
1 East G 33
2 East G 28
3 East F 31
4 West G 39
5 West F 34
6 West F 40

วิธีที่ 1: ค้นหาแถวที่ไม่ซ้ำกันในหลายคอลัมน์ (ลบคอลัมน์อื่นออก)

รหัสต่อไปนี้แสดงวิธีการค้นหาแถวที่ไม่ซ้ำกันในคอลัมน์ conf และ pos ของกรอบข้อมูล:

 #find unique rows across conf and pos columns
df_unique <- unique(df[c(' conf ', ' pos ')])

#view results
df_unique 

  conf pos
1 East G
3 East
4 West G
5 West

ผลลัพธ์ที่ได้คือเส้นที่ไม่ซ้ำกันสี่เส้น

โปรดทราบว่าคอลัมน์ คะแนน จะถูกลบออกจากผลลัพธ์โดยอัตโนมัติ

วิธีที่ 2: ค้นหาแถวเดี่ยวข้ามหลายคอลัมน์ (ลบคอลัมน์อื่น)

รหัสต่อไปนี้แสดงวิธีค้นหาแถวเดี่ยวในคอลัมน์ conf และ pos ของ data frame และเก็บค่าไว้ในคอลัมน์ point :

 #find unique rows across conf and pos columns
df_unique <- df[!duplicated(df[c(' conf ', ' pos ')]),]

#view results
df_unique 

  conf pos points
1 East G 33
3 East F 31
4 West G 39
5 West F 34

โปรดทราบว่ามีเพียงแถวเดียวที่มีอยู่ในคอลัมน์ conf และ pos และค่าในคอลัมน์ จุด จะยังคงอยู่

สิ่งสำคัญคือต้องทราบว่าจะคงไว้เฉพาะค่าของการเกิดขึ้นที่ไม่ซ้ำครั้งแรกเท่านั้น

ตัวอย่างเช่น มีสองแถวที่มี “ตะวันออก” และ “G” ในสองคอลัมน์แรก แต่เฉพาะค่าจุด (33) สำหรับการปรากฏครั้งแรกของชุดค่าผสมที่ไม่ซ้ำกันนี้เท่านั้นที่ถูกเก็บไว้ในกรอบข้อมูลสุดท้าย

ในทำนองเดียวกัน มีสองแถวที่มี “ตะวันตก” และ “F” ในสองคอลัมน์แรก แต่เฉพาะค่าจุด (34) สำหรับการเกิดขึ้นครั้งแรกของชุดค่าผสมที่ไม่ซ้ำกันนี้เท่านั้นที่ถูกเก็บไว้ในกรอบข้อมูลสุดท้าย

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

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

วิธีค้นหาค่าที่ไม่ซ้ำในคอลัมน์ใน R
วิธีนับค่าที่ไม่ซ้ำตามกลุ่มใน R
วิธีกรองค่าที่ไม่ซ้ำโดยใช้ dplyr

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

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