วิธีนับค่าที่ไม่ใช่ na ใน r (3 ตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อนับค่าที่ไม่ใช่ NA ใน R:

วิธีที่ 1: นับค่าที่ไม่ใช่ NA ในกรอบข้อมูลทั้งหมด

 sum( ! is. na (df))

วิธีที่ 2: นับค่าที่ไม่ใช่ NA ในแต่ละคอลัมน์ของกรอบข้อมูล

 colSums( ! is. na (df))

วิธีที่ 3: นับค่าที่ไม่ใช่ NA ต่อกลุ่มในกรอบข้อมูล

 library (dplyr)

df %>%
  group_by(var1) %>%
  summarise(total_non_na = sum( ! is. na (var2)))

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(12, NA, 30, 32, 20, 22, 17, NA),
                 rebounds=c(10, 8, 9, 13, NA, 20, 8, 7))

#view data frame
df

  team points rebounds
1 to 12 10
2 A NA 8
3 to 30 9
4 A 32 13
5 B 20 NA
6 B 22 20
7 B 17 8
8 B NA 7

วิธีที่ 1: นับค่าที่ไม่ใช่ NA ในกรอบข้อมูลทั้งหมด

รหัสต่อไปนี้แสดงวิธีนับผลรวมของค่าที่ไม่ใช่ NA ในกรอบข้อมูลทั้งหมด:

 #count non-NA values in entire data frame
sum( ! is. na (df))

[1] 21

จากผลลัพธ์เราจะเห็นว่ามีค่าที่ไม่ใช่ NA จำนวน 21 ค่าในกรอบข้อมูลทั้งหมด

วิธีที่ 2: นับค่าที่ไม่ใช่ NA ในแต่ละคอลัมน์ของกรอบข้อมูล

รหัสต่อไปนี้แสดงวิธีนับผลรวมของค่าที่ไม่ใช่ NA ในแต่ละคอลัมน์ของกรอบข้อมูล:

 #count non-NA values in each column
colSums( ! is. na (df))

    team points rebounds 
       8 6 7

จากผลลัพธ์เราจะเห็นได้ว่า:

  • มีค่าที่ไม่ใช่ NA 8 ค่าในคอลัมน์ทีม
  • มีค่าที่ไม่ใช่ NA 6 ค่าในคอลัมน์คะแนน
  • คอลัมน์การตีกลับมีค่าที่ไม่ใช่ NA 7 ค่า

วิธีที่ 3: นับค่าที่ไม่ใช่ NA ตามกลุ่ม

รหัสต่อไปนี้แสดงวิธีนับค่าที่ไม่ใช่ NA ทั้งหมดในคอลัมน์ คะแนน ซึ่งจัดกลุ่มตามคอลัมน์ ทีม :

 library (dplyr)
df %>%
  group_by(team) %>%
  summarise(total_non_na = sum( ! is. na (points)))

# A tibble: 2 x 2
  team total_non_na
          
1 to 3
2 B 3

จากผลลัพธ์เราจะเห็นได้ว่า:

  • มีค่าที่ไม่ใช่ NA 3 ค่าในคอลัมน์คะแนนสำหรับทีม A
  • มีค่าที่ไม่ใช่ NA 3 ค่าในคอลัมน์คะแนนสำหรับทีม B

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ที่มีค่าหายไปใน R:

วิธีค้นหาและนับค่าที่หายไปใน R
วิธีใส่ค่าที่หายไปทั้งหมดใน R

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

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