วิธีการลบแถวที่มีศูนย์ใน r (พร้อมตัวอย่าง)


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

วิธีที่ 1: ลบแถวที่มีศูนย์โดยใช้ฐาน R

 df_new <- df[apply(df!= 0 , 1 , all),]

วิธีที่ 2: ลบแถวที่มีศูนย์โดยใช้ dplyr

 library (dplyr)

df_new <- filter_if(df, is.numeric , all_vars((.) != 0 ))

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

 #create data frame
df <- data. frame (points=c(5, 7, 8, 0, 12, 14, 0, 10, 8),
                 assists=c(0, 2, 2, 4, 4, 3, 7, 6, 10),
                 rebounds=c(8, 8, 7, 3, 6, 5, 0, 12, 11))

#view data frame
df

  points assists rebounds
1 5 0 8
2 7 2 8
3 8 2 7
4 0 4 3
5 12 4 6
6 14 3 5
7 0 7 0
8 10 6 12
9 8 10 11

ตัวอย่างที่ 1: ลบแถวที่มีศูนย์โดยใช้ฐาน R

รหัสต่อไปนี้แสดงวิธีการลบแถวที่มีศูนย์โดยใช้ฟังก์ชัน R base Apply() :

 #create new data frame that removes rows with any zeros from original data frame
df_new <- df[apply(df!= 0 , 1 , all),]

#view new data frame
df_new

  points assists rebounds
2 7 2 8
3 8 2 7
5 12 4 6
6 14 3 5
8 10 6 12
9 8 10 11

โปรดทราบว่าสามบรรทัดที่มีค่า Null ได้ถูกลบออกแล้ว

ตัวอย่างที่ 2: ลบแถวที่มีศูนย์โดยใช้ dplyr

รหัสต่อไปนี้แสดงวิธีการลบแถวที่มีศูนย์โดยใช้ฟังก์ชัน filter_if() จากแพ็คเกจ dplyr ใน R:

 #create new data frame that removes rows with any zeros from original data frame
df_new <- filter_if(df, is.numeric , all_vars((.) != 0 ))

#view new data frame
df_new

  points assists rebounds
1 7 2 8
2 8 2 7
3 12 4 6
4 14 3 5
5 10 6 12
6 8 10 11

โปรดทราบว่าสามบรรทัดที่มีค่า Null ได้ถูกลบออกแล้ว

สิ่งนี้สอดคล้องกับผลลัพธ์ที่เราได้รับโดยใช้ฐาน R

หมายเหตุ : เราใช้ฟังก์ชัน is.numeric เพื่อระบุว่าตัวแปรตัวเลขทั้งหมดในกรอบข้อมูลไม่ควรเป็นศูนย์

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

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

วิธีลบบรรทัดว่างออกจาก data frame ใน R
วิธีลบคอลัมน์ที่มีค่า NA ใน R
วิธีลบบรรทัดที่ซ้ำกันใน R

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

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