วิธีลบแถวโดยใช้ 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