A: นับจำนวนค่า na ในแต่ละคอลัมน์
คุณสามารถใช้วิธีการต่อไปนี้เพื่อนับจำนวนค่า NA ในแต่ละคอลัมน์ของกรอบข้อมูลใน R:
วิธีที่ 1: นับค่า NA ในแต่ละคอลัมน์โดยใช้ฐาน R
sapply(df, function (x) sum(is. na (x)))
วิธีที่ 2: นับค่า NA ในแต่ละคอลัมน์โดยใช้ dplyr
library (dplyr) df %>% summarise(across(everything(), ~ sum(is. na (.))))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), points=c(99, 90, 86, 88, NA), assists=c(33, NA, NA, 39, 34), rebounds=c(30, 28, 24, 24, 28)) #view data frame df team points assists rebounds 1 A 99 33 30 2 B 90 NA 28 3 C 86 NA 24 4 D 88 39 24 5 E NA 34 28
ตัวอย่างที่ 1: นับค่า NA ในแต่ละคอลัมน์โดยใช้ฐาน R
รหัสต่อไปนี้แสดงวิธีนับจำนวนค่า NA ในแต่ละคอลัมน์โดยใช้ฟังก์ชัน R base sapply() :
#count NA values in each column sapply(df, function (x) sum(is. na (x))) team points assists rebounds 0 1 2 0
จากผลลัพธ์เราจะเห็นได้ว่า:
- คอลัมน์ ทีม มีค่า NA 0 ค่า
- คอลัมน์ คะแนน มีค่า 1 NA
- คอลัมน์ ช่วยเหลือ มีค่า NA 2 ค่า
- คอลัมน์ ตีกลับ มีค่า NA 0 ค่า
หมายเหตุ : สามารถใช้ฟังก์ชัน sapply() เพื่อใช้ฟังก์ชันกับแต่ละคอลัมน์ในกรอบข้อมูลได้ ในตัวอย่างนี้ เราใช้ฟังก์ชันที่นับจำนวนองค์ประกอบทั้งหมดเท่ากับ NA
ตัวอย่างที่ 2: นับค่า NA ในแต่ละคอลัมน์โดยใช้ dplyr
รหัสต่อไปนี้แสดงวิธีนับจำนวนค่า NA ในแต่ละคอลัมน์โดยใช้ฟังก์ชัน summarise() จากแพ็คเกจ dplyr :
#count NA values in each column sapply(df, function (x) sum(is. na (x))) team points assists rebounds 0 1 2 0
จากผลลัพธ์เราจะเห็นได้ว่า:
- คอลัมน์ ทีม มีค่า NA 0 ค่า
- คอลัมน์ คะแนน มีค่า 1 NA
- คอลัมน์ ช่วยเหลือ มีค่า NA 2 ค่า
- คอลัมน์ ตีกลับ มีค่า NA 0 ค่า
ผลลัพธ์เหล่านี้สอดคล้องกับผลลัพธ์ของตัวอย่างก่อนหน้านี้
หมายเหตุ : วิธี dplyr มีแนวโน้มที่จะเร็วกว่าวิธี base R เมื่อทำงานกับเฟรมข้อมูลขนาดใหญ่มาก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีใช้ na.omit ใน R
วิธีใช้ complete.cases ใน R
วิธีลบบรรทัดว่างออกจาก data frame ใน R