วิธีลบแถวโดยใช้ dplyr (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อลบแถวออกจากกรอบข้อมูลใน R โดยใช้ dplyr:

1. ลบแถวที่มี NA

 df %>%
  n / A. omit ()

2. ลบแถวที่มี NA ในคอลัมน์ใดคอลัมน์หนึ่ง

 df %>%
filter( ! is. na (column_name))

3. ลบรายการที่ซ้ำกัน

 df %>%
  distinct()

4. ลบแถวตามตำแหน่งดัชนี

 df %>%
filter( ! row_number() %in% c(1, 2, 4))

5. ลบแถวตามเงื่อนไข

 df %>%
  filter(column1 == ' A ' | column2 > 8)

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

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(4, NA, 7, 5, 9, 9),
                 assists=c(1, 3, 5, NA, 2, 2))

#view data frame
df

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2

ตัวอย่างที่ 1: ลบแถวที่มี NA

รหัสต่อไปนี้แสดงวิธีลบแถวใด ๆ ที่มีค่า NA ออกจาก data frame:

 #remove any row with NA
df %>%
  n / A. omit ()

  team points assists
1 to 4 1
3 B 7 5
5 C 9 2
6 C 9 2

ตัวอย่างที่ 2: ลบแถวที่มี NA ในคอลัมน์เฉพาะ

รหัสต่อไปนี้แสดงวิธีลบแถวใด ๆ ที่มีค่า NA ในคอลัมน์เฉพาะ:

 #remove any row with NA in 'points' column:
df %>%
  filter( ! is. na (dots))

  team points assists
1 to 4 1
2 B 7 5
3 B 5 NA
4 C 9 2
5 C 9 2

ตัวอย่างที่ 3: ลบแถวที่ซ้ำกัน

รหัสต่อไปนี้แสดงวิธีการลบแถวที่ซ้ำกัน:

 #remove duplicate rows
df %>%
  distinct()

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2

ตัวอย่างที่ 4: ลบแถวตามตำแหน่งดัชนี

รหัสต่อไปนี้แสดงวิธีการลบแถวตามตำแหน่งดัชนี:

 #remove rows 1, 2, and 4
df %>%
filter( ! row_number() %in% c(1, 2, 4))

  team points assists
1 B 7 5
2 C 9 2
3 C 9 2

ตัวอย่างที่ 5: ลบแถวตามเงื่อนไข

รหัสต่อไปนี้แสดงวิธีการลบแถวตามเงื่อนไขเฉพาะ:

 #only keep rows where team is equal to 'A' or points is greater than 8
df %>%
  filter(column1 == ' A ' | column2 > 8)

  team points assists
1 to 4 1
2 A NA 3
3 C 9 2
4 C 9 2

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

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

วิธีเลือกคอลัมน์ตามดัชนีโดยใช้ dplyr
วิธีจัดเรียงตัวแปรตามกลุ่มโดยใช้ dplyr
วิธีแทนที่ NA ด้วย Zero ใน dplyr

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

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