วิธีลบบรรทัดที่ซ้ำกันใน r เพื่อไม่ให้เหลือ
คุณสามารถใช้วิธีการต่อไปนี้ใน R เพื่อลบแถวที่ซ้ำกันออกจาก data frame เพื่อ ไม่ให้ เหลืออยู่ใน data frame ที่เป็นผลลัพธ์:
วิธีที่ 1: ใช้ Base R
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
วิธีที่ 2: ใช้ dplyr
library (dplyr) new_df <- df %>% group_by(across(everything())) %>% filter(n() == 1 )
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(20, 20, 28, 14, 13, 18, 27, 13)) #view data frame df team points 1 to 20 2 to 20 3 to 28 4 to 14 5 B 13 6 B 18 7 B 27 8 B 13
ตัวอย่างที่ 1: ใช้ Base R
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชันฐาน R เพื่อลบแถวที่ซ้ำกันออกจากกรอบข้อมูลเพื่อไม่ให้เหลือ:
#create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
#view new data frame
new_df
team points
3 to 28
4 to 14
6 B 18
7 B 27
โปรดทราบว่าแถวที่ซ้ำกันแต่ละแถวได้ถูกลบออกจาก data frame และไม่มีแถวที่ซ้ำกันเหลืออยู่
ตัวอย่างที่ 2: การใช้ dplyr
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันในแพ็คเกจ dplyr ใน R เพื่อลบแถวที่ซ้ำกันออกจาก data frame เพื่อไม่ให้เหลือเลย:
library (dplyr)
#create new data frame that removes duplicates so none are left
new_df <- df %>%
group_by(across(everything())) %>%
filter(n() == 1 )
#view new data frame
new_df
# A tibble: 4 x 2
# Groups: team, points [4]
team points
1 to 28
2 to 14
3 B 18
4 B 27
โปรดทราบว่าแถวที่ซ้ำกันแต่ละแถวได้ถูกลบออกจาก data frame และไม่มีแถวที่ซ้ำกันเหลืออยู่
โปรดทราบว่าวิธีนี้ให้ผลลัพธ์เหมือนกับวิธีก่อนหน้า
หมายเหตุ : สำหรับเฟรมข้อมูลที่มีขนาดใหญ่มาก วิธี dplyr จะเร็วกว่าวิธี base R
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่นๆ ใน R:
วิธีลบแถวใน R ตามเงื่อนไข
วิธีลบแถวที่มี NA ในคอลัมน์เฉพาะใน R