Dplyr: วิธีใช้ตัวกรองข้อความ "ไม่ปรากฏ"


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

 df %>%
  filter (!col_name %in% c(' value1 ', ' value2 ', ' value3 ', ...))

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

ตัวอย่างที่ 1: กรองแถวที่ไม่มีค่าในคอลัมน์

สมมติว่าเรามี data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1 AG 12
2 AG 14
3 BF 19
4 BG 24
5 CF 36
6 CC 41
7 DC 18
8 DC 29

ไวยากรณ์ต่อไปนี้แสดงวิธีการกรองแถวที่ชื่อทีมไม่เท่ากับ “A” หรือ “B”:

 #filter for rows where team name is not 'A' or 'B'
df %>%
filter (!team %in% c(' A ', ' B '))

team position points
1 CF 36
2 CC 41
3 DC 18
4 DC 29

ตัวอย่างที่ 2: กรองแถวที่ไม่มีค่าในหลายคอลัมน์

สมมติว่าเรามี data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1 AG 12
2 AG 14
3 BF 19
4 BG 24
5 CF 36
6 CC 41
7 DC 18
8 DC 29

ไวยากรณ์ต่อไปนี้แสดงวิธีการกรองแถวที่ชื่อทีมไม่เท่ากับ “A” และ ตำแหน่งไม่เท่ากับ “C”:

 #filter for rows where team name is not 'A' and position is not 'C'
df %>%
filter (!team %in% c(' A ') & !position %in% c(' C '))

team position points
1 BF 19
2 BG 24
3 CF 36

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

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

วิธีลบแถวโดยใช้ dplyr
วิธีเลือกคอลัมน์ตามดัชนีโดยใช้ dplyr
วิธีกรองแถวที่มีสตริงบางตัวโดยใช้ dplyr

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

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