วิธีแยกตัวเลขออกจากสตริงใน r (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีการต่อไปนี้เพื่อแยกตัวเลขจากสตริงใน R:
วิธีที่ 1: แยกหมายเลขสตริงโดยใช้ฐาน R
as. numeric (gsub(" \\D ", "", df$my_column))
วิธีที่ 2: แยกหมายเลขสตริงโดยใช้แพ็คเกจ readr
library (readr)
parse_number(df$my_column)
บทช่วยสอนนี้จะอธิบายวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard23', 'Guard14', '2Forward',
'Guard25', '6Forward', 'Center99'))
#view data frame
df
team position
1A Guard23
2A Guard14
3 A 2Forward
4 B Guard25
5 B 6Forward
6 B Center99
ตัวอย่างที่ 1: แยกตัวเลขออกจากสตริงโดยใช้ฐาน R
รหัสต่อไปนี้แสดงวิธีการแยกตัวเลขจากแต่ละสายอักขระในคอลัมน์ ตำแหน่ง ของกรอบข้อมูล:
#extract number from each string in 'position' column as. numeric (gsub(" \\D ", "", df$position)) [1] 23 14 2 25 6 99
โปรดทราบว่าค่าตัวเลขจะถูกแยกออกจากแต่ละสตริงในคอลัมน์ ตำแหน่ง
หมายเหตุ : ฟังก์ชัน gsub() จะแทนที่ตัวเลขที่ไม่ใช่ตัวเลข ( \\D ) ทั้งหมดในสตริงด้วยพื้นที่ว่าง สิ่งนี้มีผลในการแยกเฉพาะตัวเลขจากสตริง
หากต้องการ คุณยังสามารถเก็บค่าตัวเลขเหล่านี้ไว้ในคอลัมน์ใหม่ในกรอบข้อมูลได้:
#create new column that contains numbers from each string in 'position' column df$num <- as. numeric (gsub(" \\D ", "", df$position)) #view updated data frame df team position number 1A Guard23 23 2A Guard14 14 3 A 2Forward 2 4 B Guard25 25 5 B 6Forward 6 6 B Center99 99
ตัวอย่างที่ 2: แยกตัวเลขออกจากสตริงโดยใช้แพ็คเกจ Reader
รหัสต่อไปนี้แสดงวิธีการแยกตัวเลขจากแต่ละสตริงในคอลัมน์ ตำแหน่ง ของกรอบข้อมูลโดยใช้ฟังก์ชัน parse_number() จากแพ็คเกจ readr :
library (readr) #extract number from each string in 'position' column parse_number(df$position) [1] 23 14 2 25 6 99
โปรดทราบว่าค่าตัวเลขจะถูกแยกออกจากแต่ละสตริงในคอลัมน์ ตำแหน่ง
ซึ่งสอดคล้องกับผลลัพธ์ของการใช้ฟังก์ชัน gsub() ในฐาน R
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะใน R
วิธีลบอักขระออกจากสตริงใน R
วิธีค้นหาตำแหน่งอักขระในสตริงใน R