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