ตอบ: ลบคอลัมน์หากชื่อมีสตริงเฉพาะ
คุณสามารถใช้วิธีการต่อไปนี้เพื่อลบคอลัมน์ออกจากกรอบข้อมูลใน R ซึ่งมีชื่อประกอบด้วยสตริงเฉพาะ:
วิธีที่ 1: เอาคอลัมน์ออกถ้าชื่อมีสตริงเฉพาะ
library (dplyr) df_new <- df %>% select(-contains(' this_string '))
วิธีที่ 2: เอาคอลัมน์ออกถ้าชื่อมีสายอักขระเฉพาะตัวใดตัวหนึ่ง
library (dplyr) df_new <- df %>% select(-contains(c(' string1 ', ' string2 ', ' string3 ')))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame df <- data. frame (team_name=c('A', 'B', 'C', 'D', 'E', 'F'), team_location=c('AU', 'AU', 'EU', 'EU', 'AU', 'EU'), player_name=c('Andy', 'Bob', 'Chad', 'Dan', 'Ed', 'Fran'), dots=c(22, 29, 35, 30, 18, 12)) #view data frame df team_name team_location player_name points 1 A AU Andy 22 2 B AU Bob 29 3 C EU Chad 35 4 D EU Dan 30 5 E TO Ed 18 6 F EU Fran 12
ตัวอย่างที่ 1: ลบคอลัมน์หากชื่อมีสตริงเฉพาะ
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบคอลัมน์ทั้งหมดออกจากกรอบข้อมูลที่มี “ทีม” ที่ใดก็ได้ในชื่อคอลัมน์:
library (dplyr) #drop columns that contain 'team' df_new <- df %>% select(-contains(' team ')) #view new data frame df_new player_name points 1 Andy 22 2 Bob 29 3 Chad 35 4 Dan 30 5 Ed 18 6 Fran 12
โปรดทราบว่าทั้งสองคอลัมน์ที่มี “ทีม” ในชื่อได้ถูกลบออกจากกรอบข้อมูลแล้ว
ตัวอย่างที่ 2: ลบคอลัมน์หากชื่อมีสตริงเฉพาะรายการใดรายการหนึ่ง
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบคอลัมน์ทั้งหมดออกจากกรอบข้อมูลที่มี “ผู้เล่น” หรือ “คะแนน” ที่ใดก็ได้ในชื่อคอลัมน์:
#drop columns whose name contains 'player' or 'points' df_new <- df %>% select(-contains(c(' player ', ' points '))) #view new data frame df team_name team_location 1 A AU 2 B AU 3 C EU 4 D EU 5 E AU 6 F EU
โปรดทราบว่าทั้งสองคอลัมน์ที่มี “ผู้เล่น” หรือ “คะแนน” ในชื่อได้ถูกลบออกจากกรอบข้อมูลแล้ว
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน dplyr select() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีลบคอลัมน์ตามชื่อใน R
วิธีรักษาบางคอลัมน์ใน R
วิธีเปลี่ยนชื่อคอลัมน์กรอบข้อมูลใน R