วิธีลบแถวที่มี na ในคอลัมน์เฉพาะใน r


คุณสามารถใช้หนึ่งในสามวิธีต่อไปนี้เพื่อลบแถวที่มี NA ในคอลัมน์เฉพาะของกรอบข้อมูลใน R:

 #use is.na() method
df[!is. na (df$col_name),]

#use subset() method
subset(df, !is. na (col_name))

#use tidyr method
library (tidyr)
df %>% drop_na(col_name)

โปรดทราบว่าแต่ละวิธีจะให้ผลลัพธ์ที่เหมือนกัน

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

 #create data frame
df <- data. frame (a = c(NA, 14, 19, 22, 26),
                 b = c(14, NA, 9, NA, 5),
                 c = c(45, 56, 54, 57, 59))

#view data frame
df

ABC
1 NA 14 45
2 14 NA 56
3 19 9 54
4 22 NA 57
5 26 5 59

วิธีที่ 1: ลบแถวที่มี NA โดยใช้ is.na()

รหัสต่อไปนี้แสดงวิธีการลบแถวออกจาก data frame ที่มีค่า NA ในบางคอลัมน์โดยใช้เมธอด is.na()

 #remove rows from data frame with NA values in column 'b'
df[!is. na (df$b),]

   ABC
1 NA 14 45
3 19 9 54
5 26 5 59

วิธีที่ 2: ลบแถวที่มี NA โดยใช้เซ็ตย่อย ()

รหัสต่อไปนี้แสดงวิธีการลบแถวออกจาก data frame ที่มีค่า NA ในบางคอลัมน์โดยใช้เมธอด subset() :

 #remove rows from data frame with NA values in column 'b'
subset(df, !is. na (b))

   ABC
1 NA 14 45
3 19 9 54
5 26 5 59

วิธีที่ 3: วางแถวด้วย NA โดยใช้ drop_na()

รหัสต่อไปนี้แสดงวิธีการปล่อยแถวจาก data frame ที่มีค่า NA ในบางคอลัมน์โดยใช้เมธอด drop_na() :

 library (tidyr)

#remove rows from data frame with NA values in column 'b'
df %>% drop_na(b)

   ABC
1 NA 14 45
3 19 9 54
5 26 5 59

โปรดทราบว่าทั้งสามวิธีให้ผลลัพธ์ที่เหมือนกัน

หมายเหตุ: คุณสามารถดูเอกสารออนไลน์ฉบับสมบูรณ์สำหรับเมธอด drop_na() ได้ที่นี่

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

วิธีใช้ฟังก์ชันกับแต่ละแถวของ data frame ใน R
วิธีดึงหมายเลขบรรทัดใน R
วิธีเพิ่มแถวใน data frame ใน R

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

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