วิธีลบแถวที่ซ้ำกันใน r (พร้อมตัวอย่าง)


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

วิธีที่ 1: ใช้ Base R

 #remove duplicate rows across entire data frame
df[ ! duplicated(df), ]

#remove duplicate rows across specific columns of data frame
df[ ! duplicated(df[c(' var1 ')]), ]

วิธีที่ 2: ใช้ dplyr

 #remove duplicate rows across entire data frame 
df %>%
  distinct(.keep_all = TRUE )

#remove duplicate rows across specific columns of data frame
df %>%
  distinct(var1, .keep_all = TRUE )

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

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard', 'Guard', 'Forward', 'Guard', 'Center', 'Center'))

#view data frame
df

  team position
1A Guard
2 A Guard
3 A Forward
4 B Guard
5B Center
6B Center

ตัวอย่างที่ 1: ลบแถวที่ซ้ำกันโดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีการลบแถวที่ซ้ำกันออกจากกรอบข้อมูลโดยใช้ฟังก์ชันฐาน R:

 #remove duplicate rows from data frame
df[ ! duplicated(df), ]

  team position
1A Guard
3 A Forward
4 B Guard
5B Center

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

 #remove rows where there are duplicates in the 'team' column
df[ ! duplicated(df[c(' team ')]), ]

  team position
1A Guard
4 B Guard

ตัวอย่างที่ 2: ลบแถวที่ซ้ำกันโดยใช้ dplyr

รหัสต่อไปนี้แสดงวิธีการลบแถวที่ซ้ำกันออกจากกรอบข้อมูลโดยใช้ฟังก์ชัน ที่แตกต่างกัน () จากแพ็คเกจ dplyr :

 library (dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(.keep_all = TRUE )

  team position
1A Guard
2 A Forward
3 B Guard
4B Center

โปรดทราบว่าอาร์กิวเมนต์ .keep_all บอกให้ R เก็บคอลัมน์ทั้งหมดไว้ในกรอบข้อมูลดั้งเดิม

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน ที่แตกต่าง() เพื่อลบแถวที่ซ้ำกันออกจากคอลัมน์เฉพาะในกรอบข้อมูล:

 library (dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(team, .keep_all = TRUE )

  team position
1A Guard
2 B Guard

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

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

วิธีลบแถวใน R ตามเงื่อนไข
วิธีลบแถวที่มี NA ในคอลัมน์เฉพาะใน R

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

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