วิธีลบแถวที่มี na บางส่วนหรือทั้งหมดใน r


บ่อยครั้งที่คุณอาจต้องการลบแถวที่มี NA บางส่วนหรือทั้งหมด (ค่าที่หายไป) ในกรอบข้อมูลใน R

บทช่วยสอนนี้จะอธิบายวิธีลบบรรทัดเหล่านี้โดยใช้ Basic R และแพ็คเกจ Tidyr เราจะใช้กรอบข้อมูลต่อไปนี้สำหรับแต่ละตัวอย่างต่อไปนี้:

 #create data frame with some missing values
df <- data.frame(points = c(12, NA, 19, 22, 32),
                 assists = c(4, NA, 3, NA, 5),
                 rebounds = c(5, NA, 7, 12, NA))

#view data frame
df

  points assists rebounds
1 12 4 5
2 NA NA NA
3 19 3 7
4 22 NA 12
5 32 5 NA

ลบ NAs โดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีใช้ complete.cases() เพื่อลบแถวทั้งหมดในกรอบข้อมูลที่มีค่าหายไปใน คอลัมน์ :

 #remove all rows with a missing value in any column
df[ complete.cases (df),]

  points assists rebounds
1 12 4 5
3 19 3 7

รหัสต่อไปนี้แสดงวิธีใช้ complete.cases() เพื่อลบแถวทั้งหมดในกรอบข้อมูลที่มีค่าหายไปในคอลัมน์ ที่ระบุ :

 #remove all rows with a missing value in the third column
df[ complete.cases (df[,3]),]

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

#remove all rows with a missing value in either the first or third column
df[ complete.cases (df[ , c(1,3)]),]

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

ลบ NA โดยใช้ Tidyr

รหัสต่อไปนี้แสดงวิธีใช้ drop_na() จากแพ็คเกจ Tidyr เพื่อปล่อยแถวทั้งหมดในกรอบข้อมูลที่มีค่าหายไปใน คอลัมน์ :

 #load tidyr package
library(tidyr)

#remove all rows with a missing value in any column
df %>% drop_na()

  points assists rebounds
1 12 4 5
3 19 3 7

รหัสต่อไปนี้แสดงวิธีใช้ drop_na() จากแพ็คเกจ Tidyr เพื่อปล่อยแถวทั้งหมดในกรอบข้อมูลที่มีค่าหายไปในคอลัมน์ ที่ระบุ :

 #load tidyr package
library(tidyr)

#remove all rows with a missing value in the third column
df %>% drop_na(rebounds)

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

คุณสามารถค้นหาบทช่วยสอน R เพิ่มเติมได้ ที่นี่

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

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