วิธีการวิเคราะห์ข้อมูลข้อความใน R: พื้นฐานของการจัดการสตริง

Withi Kar Wikheraah Khxmul Khxkhwam Ni R Phun Than Khxng Kar Cadkar String



สตริงเป็นประเภทข้อมูลที่ได้รับความนิยมเป็นอันดับสองในการเขียนโปรแกรม R และการจัดการสตริงเป็นงานที่สำคัญใน R การดำเนินการจัดการสตริงใน R ประกอบด้วยฟังก์ชันต่างๆ มากมายเพื่อใช้และแก้ไขข้อมูลข้อความ รวมถึงการแก้ไขและแยกวิเคราะห์สตริง ในบทความนี้ เราจะเจาะลึกฟังก์ชันบางส่วนที่ช่วยเราในการจัดการสตริง ฟังก์ชันเหล่านี้มีอยู่ใน R และใช้เพื่อวัตถุประสงค์ต่างๆ เพื่อดำเนินงานสตริง

ตัวอย่างที่ 1: รับตำแหน่งของรูปแบบจากสตริงโดยใช้ฟังก์ชัน Grep() ใน R

หากต้องการแยกตำแหน่งของรูปแบบที่ระบุออกจากสตริง จะใช้ฟังก์ชัน grep() ของ R

grep('i+', c('fix', 'split', 'corn n', 'paint'), perl=TRUE, value=FALSE)

ที่นี่ เราใช้ฟังก์ชัน grep() โดยระบุรูปแบบ “+i” เป็นอาร์กิวเมนต์ที่จะจับคู่ภายในเวกเตอร์ของสตริง เราตั้งค่าเวกเตอร์อักขระซึ่งมีสี่สาย หลังจากนั้น เราตั้งค่าอาร์กิวเมนต์ 'perl' ด้วยค่า TRUE ซึ่งระบุว่า R ใช้ไลบรารีนิพจน์ทั่วไปที่เข้ากันได้กับ Perl และพารามิเตอร์ 'value' ระบุด้วยค่า 'FALSE' ซึ่งใช้ในการดึงข้อมูลดัชนีขององค์ประกอบ ในเวกเตอร์ที่ตรงกับรูปแบบ







ตำแหน่งรูปแบบ “+i” จากแต่ละสตริงของอักขระเวกเตอร์จะแสดงในเอาต์พุตต่อไปนี้:





ตัวอย่างที่ 2: จับคู่รูปแบบโดยใช้ฟังก์ชัน Gregexpr() ใน R

ต่อไป เราจะดึงข้อมูลตำแหน่งดัชนีพร้อมกับความยาวของสตริงเฉพาะใน R โดยใช้ฟังก์ชัน gregexpr()





char_vec <- c('โปรแกรมภาษา', 'RSCRIPT')
gregexpr('GRAMM', char_vec, useBytes = TRUE)

ที่นี่เราตั้งค่าตัวแปร 'char_vect' โดยที่สตริงมีอักขระต่างกัน หลังจากนั้น เรากำหนดฟังก์ชัน gregexpr() ซึ่งใช้รูปแบบสตริง “GRAMM” เพื่อจับคู่กับสตริงที่เก็บไว้ใน “char_vec” จากนั้นเราตั้งค่าพารามิเตอร์ useBytes ด้วยค่า 'TRUE' พารามิเตอร์นี้บ่งชี้ว่าการจับคู่ควรได้รับแบบไบต์ต่อไบต์ แทนที่จะเป็นอักขระต่ออักขระ

ผลลัพธ์ต่อไปนี้ที่ดึงมาจากฟังก์ชัน gregexpr() แสดงถึงดัชนีและความยาวของสตริงเวกเตอร์ทั้งสอง:



ตัวอย่างที่ 3: นับจำนวนอักขระทั้งหมดในสตริงโดยใช้ฟังก์ชัน Nchar() ใน R

เมธอด nchar() ที่เรานำไปใช้ต่อไปนี้ยังช่วยให้เราสามารถกำหนดจำนวนอักขระในสตริงได้:

Res <- nchar('นับอักขระแต่ละตัว')
พิมพ์(ความละเอียด)

ที่นี่เราเรียกเมธอด nchar() ซึ่งตั้งค่าไว้ภายในตัวแปร “Res” เมธอด nchar() มาพร้อมกับสตริงอักขระแบบยาวซึ่งนับโดยเมธอด nchar() และระบุจำนวนอักขระตัวนับในสตริงที่ระบุ จากนั้น เราจะส่งตัวแปร “Res” ไปยังเมธอด print() เพื่อดูผลลัพธ์ของเมธอด nchar()

ได้รับผลลัพธ์ในเอาต์พุตต่อไปนี้ซึ่งแสดงว่าสตริงที่ระบุมีอักขระ 20 ตัว:

ตัวอย่างที่ 4: แยกสตริงย่อยออกจากสตริงโดยใช้ฟังก์ชัน Substring() ใน R

เราใช้เมธอด substring() กับอาร์กิวเมนต์ 'start' และ 'stop' เพื่อแยกสตริงย่อยเฉพาะออกจากสตริง

str <- สตริงย่อย ('เช้า', 2, 4)
พิมพ์(str)

ที่นี่เรามีตัวแปร “str” ที่มีการเรียกเมธอด substring() ออกมา เมธอด substring() รับสตริง “MORNING” เป็นอาร์กิวเมนต์แรกและค่าของ “2” เป็นอาร์กิวเมนต์ที่สองซึ่งบ่งชี้ว่าจะต้องแยกอักขระตัวที่สองจากสตริง และค่าของอาร์กิวเมนต์ “4” บ่งชี้ว่า จะต้องแยกอักขระตัวที่สี่ออก substring() วิธีการแยกอักขระจากสตริงที่อยู่ระหว่างตำแหน่งที่ระบุ

ผลลัพธ์ต่อไปนี้แสดงสตริงย่อยที่แยกออกมาซึ่งอยู่ระหว่างตำแหน่งที่สองและสี่ในสตริง:

ตัวอย่างที่ 5: เชื่อมต่อสตริงโดยใช้ฟังก์ชัน Paste() ใน R

ฟังก์ชัน paste() ใน R ยังใช้สำหรับการจัดการสตริงซึ่งเชื่อมสตริงที่ระบุเข้าด้วยกันโดยการแยกตัวคั่น

msg1 <- 'เนื้อหา'
msg2 <- 'กำลังเขียน'

วาง (msg1, msg2)

ที่นี่ เราระบุสตริงให้กับตัวแปร “msg1” และ “msg2” ตามลำดับ จากนั้นเราใช้เมธอด paste() ของ R เพื่อเชื่อมสตริงที่ระบุให้เป็นสตริงเดียว เมธอด paste() รับตัวแปรสตริงเป็นอาร์กิวเมนต์และส่งกลับสตริงเดี่ยวโดยมีช่องว่างเริ่มต้นอยู่ระหว่างสตริง

เมื่อดำเนินการกับเมธอด paste() เอาต์พุตจะแทนสตริงเดี่ยวที่มีช่องว่างอยู่

ตัวอย่างที่ 6: แก้ไขสตริงโดยใช้ฟังก์ชัน Substring() ใน R

นอกจากนี้เรายังสามารถอัพเดตสตริงโดยเพิ่มสตริงย่อยหรืออักขระใดๆ ลงในสตริงโดยใช้ฟังก์ชัน substring() โดยใช้สคริปต์ต่อไปนี้:

str1 <- 'ฮีโร่'
สตริงย่อย (str1, 5, 6) <- 'ic'

cat('    สตริงที่แก้ไข:', str1)

เราตั้งค่าสตริง 'Heroes' ภายในตัวแปร 'str1' จากนั้น เราปรับใช้เมธอด substring() โดยระบุ 'str1' พร้อมกับค่าดัชนี 'start' และ 'stop' ของสตริงย่อย เมธอด substring() ถูกกำหนดด้วยสตริงย่อย 'iz' ซึ่งวางอยู่บนตำแหน่งที่ระบุภายในฟังก์ชันสำหรับสตริงที่กำหนด หลังจากนั้น เราใช้ฟังก์ชัน cat() ของ R ซึ่งแสดงถึงค่าสตริงที่อัปเดต

ผลลัพธ์ที่แสดงสตริงได้รับการอัพเดตด้วยอันใหม่โดยใช้สตริงย่อย () วิธีการ:

ตัวอย่างที่ 7: จัดรูปแบบสตริงโดยใช้ฟังก์ชัน Format() ใน R

อย่างไรก็ตาม การดำเนินการจัดการสตริงใน R ยังรวมถึงการจัดรูปแบบสตริงตามนั้นด้วย สำหรับสิ่งนี้ เราใช้ฟังก์ชัน format() ซึ่งสามารถจัดแนวสตริงและตั้งค่าความกว้างของสตริงที่ต้องการได้

position1 <- format('โปรแกรม', width = 10, justify = 'l')
position2 <- format('โปรแกรม', width = 10, justify = 'r')
position3 <- format('โปรแกรม', width = 10, justify = 'c')

พิมพ์ (ตำแหน่ง 1)
พิมพ์ (ตำแหน่ง 2)
พิมพ์ (ตำแหน่ง 3)

ที่นี่ เราตั้งค่าตัวแปร “placement1” ซึ่งมาพร้อมกับเมธอด format() เราส่งสตริง 'โปรแกรม' ที่จะจัดรูปแบบเป็นเมธอด format() ความกว้างถูกตั้งค่า และการจัดตำแหน่งของสตริงถูกตั้งค่าไปทางซ้ายโดยใช้อาร์กิวเมนต์ 'จัดชิดขอบ' ในทำนองเดียวกัน เราสร้างตัวแปรอีกสองตัว ได้แก่ “placement2” และ “placement2” และใช้เมธอด format() เพื่อจัดรูปแบบสตริงที่ให้มาตามลำดับ

ผลลัพธ์จะแสดงรูปแบบการจัดรูปแบบสามรูปแบบสำหรับสตริงเดียวกันในภาพต่อไปนี้ รวมถึงการจัดตำแหน่งด้านซ้าย ด้านขวา และกึ่งกลาง:

ตัวอย่างที่ 8: แปลงสตริงเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน R

นอกจากนี้ เรายังแปลงสตริงเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้โดยใช้ฟังก์ชัน tolower() และ toupper() ดังต่อไปนี้:

s1 <- 'GoOd Food GooD life'
ผลลัพธ์ 1 <- ตัวล่าง (s1)

พิมพ์ (ผลลัพธ์ 1)

s2 <- 'ภาษาการเขียนโปรแกรม r ใน'
result2 <- ท็อปเปอร์ (s2)

พิมพ์ (ผลลัพธ์ 2)

ที่นี่ เราจัดเตรียมสตริงที่มีอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก หลังจากนั้นสตริงจะถูกเก็บไว้ในตัวแปร “s1” จากนั้นเราเรียกเมธอด tolower() และส่งสตริง “s1” เข้าไปข้างในเพื่อแปลงอักขระทั้งหมดที่อยู่ภายในสตริงให้เป็นตัวพิมพ์เล็ก จากนั้นเราพิมพ์ผลลัพธ์ของเมธอด tolower() ซึ่งเก็บไว้ในตัวแปร “result1” ต่อไป เราตั้งค่าสตริงอื่นในตัวแปร “s2” ซึ่งมีอักขระทั้งหมดเป็นตัวพิมพ์เล็ก เราใช้เมธอด toupper() กับสตริง “s2” นี้เพื่อแปลงสตริงที่มีอยู่ให้เป็นตัวพิมพ์ใหญ่

ผลลัพธ์จะแสดงทั้งสตริงในกรณีที่ระบุในภาพต่อไปนี้:

บทสรุป

เราเรียนรู้วิธีต่างๆ ในการจัดการและวิเคราะห์สตริงซึ่งเรียกว่าการจัดการสตริง เราแยกตำแหน่งของตัวละครออกจากสตริง เชื่อมต่อสตริงต่างๆ และแปลงสตริงให้เป็นตัวพิมพ์ที่ระบุ นอกจากนี้ เรายังจัดรูปแบบสตริง แก้ไขสตริง และดำเนินการอื่นๆ มากมายที่นี่เพื่อจัดการสตริง