วิธีแทนที่สตริงในคอลัมน์โดยใช้ dplyr


คุณสามารถใช้วิธีการต่อไปนี้เพื่อแทนที่สตริงในคอลัมน์เฉพาะของกรอบข้อมูลโดยใช้ฟังก์ชันในแพ็คเกจ dplyr :

วิธีที่ 1: แทนที่สตริงด้วยสตริงใหม่

 library (dplyr)
library (stringr) 

df %>% 
  mutate(across(' column_name ', str_replace, ' old_value ', ' new_value '))

วิธีที่ 2: แทนที่หลายสายอักขระด้วยสายอักขระใหม่

 library (dplyr)
library (stringr) 

df %>% 
  mutate(across(' column_name ', str_replace, ' old_value1|old_value2 ', ' new_value '))

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

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West'),
                 position=c('P_Guard', 'P_Guard', 'S_Guard', 'S_Guard'),
                 dots=c(22, 25, 29, 13))

#view data frame
df

  conf position points
1 East P_Guard 22
2 East P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

ตัวอย่างที่ 1: แทนที่สตริงด้วยสตริงใหม่

รหัสต่อไปนี้แสดงวิธีการแทนที่สตริง “East” ในคอลัมน์ conf ด้วยสตริง “Eastern”:

 library (dplyr)
library (stringr)

#replace 'East' with 'Eastern' in conf column
df %>% 
  mutate(across(' conf ', str_replace, ' East ', ' Eastern '))

     conf position points
1 Eastern P_Guard 22
2 Eastern P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

โปรดทราบว่าแต่ละสตริง “East” จะถูกแทนที่ด้วย “Eastern” ในคอลัมน์ conf ในขณะที่คอลัมน์อื่นๆ ทั้งหมดยังคงไม่เปลี่ยนแปลง

ตัวอย่างที่ 2: แทนที่หลายสตริงด้วยสตริงใหม่

รหัสต่อไปนี้แสดงวิธีการแทนที่สตริง ‘P_’ และ ‘S_’ ในคอลัมน์ conf ด้วยสตริงว่าง:

 library (dplyr)
library (stringr)

#replace 'P_' and 'S_' with empty string in position column
df %>% 
  mutate(across(' position ', str_replace, ' P_|S_ ', ''))

  conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13

โปรดทราบว่าแต่ละสตริง ‘P_’ และ ‘S_’ ถูกแทนที่ด้วยสตริงว่างในคอลัมน์ ตำแหน่ง ในขณะที่คอลัมน์อื่นๆ ทั้งหมดไม่มีการเปลี่ยนแปลง

โปรดทราบว่าเราใช้ตัวดำเนินการ “OR” ( | ) เพื่อบอก R ว่าเราต้องการแทนที่สตริงทั้งหมดที่เท่ากับ “P_” หรือ “S_” ด้วยสตริงว่าง

คุณสามารถใช้ตัวดำเนินการ “OR” ( | ) ได้มากเท่าที่คุณต้องการแทนที่ค่าได้มากเท่าที่คุณต้องการในคอลัมน์ในแต่ละครั้ง

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

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

วิธีบันทึกค่าใหม่โดยใช้ dplyr
วิธีแทนที่ NA ด้วย Zero ใน dplyr
วิธีกรองแถวที่มีสตริงบางตัวโดยใช้ dplyr

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

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