วิธีกรอง data frame โดยไม่สูญเสียสาย na โดยใช้ dplyr
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อกรองเฟรมข้อมูลโดยไม่สูญเสียแถวที่มีค่า NA โดยใช้ฟังก์ชันในแพ็คเกจ dplyr และ Tidyr ใน R:
library (dplyr) library (tidyr) #filter for rows where team is not equal to 'A' (and keep rows with NA) df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))
โปรดทราบว่าสูตรนี้ใช้ฟังก์ชัน แทนที่_na() จากแพ็คเกจ Tidyr เพื่อแปลงค่า NA เป็น TRUE เพื่อไม่ให้ถูกลบออกจากกรอบข้อมูลระหว่างการกรอง
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: กรองเฟรมข้อมูลโดยไม่สูญเสียแถว NA โดยใช้ dplyr
สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
#create data frame df <- data. frame (team=c('A', NA, 'A', 'B', NA, 'C', 'C', 'C'), points=c(18, 13, 19, 14, 24, 21, 20, 28), assists=c(5, 7, 17, 9, 12, 9, 5, 12)) #view data frame df team points assists 1 to 18 5 2 <NA> 13 7 3 A 19 17 4 B 14 9 5 <NA> 24 12 6 C 21 9 7 C 20 5 8 C 28 12
ตอนนี้ สมมติว่าเราใช้ฟังก์ชัน filter() จากแพ็คเกจ dplyr เพื่อกรอง data frame เพื่อให้มีเฉพาะแถวที่มีค่าในคอลัมน์ ทีม ไม่เท่ากับ A:
library (dplyr) #filter for rows where team is not equal to 'A' df <- df %>% filter(team != ' A ') #view updated data frame df team points assists 1 B 14 9 2 C 21 9 3 C 20 5 4 C 28 12
โปรดทราบว่าทุกแถวที่มีค่าในคอลัมน์ ทีม เท่ากับ A ได้ถูกกรองแล้ว รวมถึงแถวที่มีค่าในคอลัมน์ ทีม เท่ากับ NA
หากเราต้องการกรองแถวที่ ทีม เท่ากับ A และ เก็บ แถวที่มีค่า NA เราสามารถใช้ไวยากรณ์ต่อไปนี้:
library (dplyr) library (tidyr) #filter for rows where team is not equal to 'A' (and keep rows with NA) df <- df %>% filter((team != ' A ') %>% replace_na( TRUE )) #view updated data frame df team points assists 1 <NA> 13 7 2 B 14 9 3 <NA> 24 12 4 C 21 9 5 C 20 5 6 C 28 12
โปรดทราบว่าทุกแถวที่มีค่าในคอลัมน์ ทีม เท่ากับ A จะถูกกรอง แต่เราเก็บแถวโดยที่ค่าในคอลัมน์ ทีม เท่ากับ NA
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน Tidyr replacement_na() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่น ๆ ใน dplyr:
วิธีกรองตามหมายเลขแถวโดยใช้ dplyr
วิธีกรองตามเงื่อนไขต่างๆ โดยใช้ dplyr
วิธีใช้ตัวกรอง “ไม่รวม” ใน dplyr