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

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

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