ตอบ: วิธีลบบรรทัดที่มีสตริงเฉพาะ


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

 df[!grepl(' string ', df$column),]

บทช่วยสอนนี้ให้ตัวอย่างการใช้งานจริงของไวยากรณ์นี้กับกรอบข้อมูลต่อไปนี้ใน R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 conference=c('East', 'East', 'East', 'West', 'West', 'East'),
                 dots=c(11, 8, 10, 6, 6, 5))

#view data frame
df

  team conference points
1 A East 11
2 A East 8
3 A East 10
4 B West 6
5 B West 6
6 C East 5

ตัวอย่างที่ 1: ลบแถวที่มีสตริงเฉพาะ

รหัสต่อไปนี้แสดงวิธีการลบแถวทั้งหมดออกจากกรอบข้อมูลที่มี “A” ในคอลัมน์ทีม:

 df[!grepl(' A ', df$team),]

  team conference points
4 B West 6
5 B West 6
6 C East 5

หรือเราสามารถลบแถวทั้งหมดออกจากกรอบข้อมูลที่มี “ตะวันตก” ในคอลัมน์การประชุม:

 df[!grepl(' West ', df$conference),]

  team conference points
1 A East 11
2 A East 8
3 A East 10
6 C East 5

ตัวอย่างที่ 2: ลบแถวที่มีสตริงในรายการ

รหัสต่อไปนี้แสดงวิธีการลบแถวทั้งหมดออกจากกรอบข้อมูลที่มี “A” หรือ “B” ในคอลัมน์ทีม:

 df[!grepl(' A|B ', df$team),]

6 C East 5

นอกจากนี้เรายังสามารถกำหนดเวกเตอร์ของสตริงแล้วลบแถวทั้งหมดในกรอบข้อมูลที่มีสตริงของเวกเตอร์ในคอลัมน์ทีม:

 #define vector of strings
remove <- c(' A ', ' B ')

#remove rows that contain any string in the vector in the team column
df[!grepl( paste (remove, collapse=' | '), df$team),]

6 C East 5

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

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

วิธีลบแถวที่มี NA บางส่วนหรือทั้งหมดใน R
วิธีลบบรรทัดที่ซ้ำกันใน R
วิธีรวมแถวเฉพาะใน R

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

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