การสร้างสตริงด้วย paste() และ paste0()
เชื่อมสตริงโดยมีตัวคั่นด้วย paste และ paste0
การสร้างสตริงด้วย paste() และ paste0() เป็นบทเรียน R Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน R Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน
พื้นฐานของ paste()
paste() แปลงอาร์กิวเมนต์เป็นสตริงข้อความ แล้วนำมาต่อกันโดยใช้ตัวคั่น โดยค่าเริ่มต้น ตัวคั่นคือช่องว่างหนึ่งช่อง ' ' นี่เป็นฟังก์ชันสร้างสตริงที่ยืดหยุ่นที่สุดใน R พื้นฐาน
paste('Hello', 'World')
paste('User', 'ID', ':', 42)
paste('R', 'version', '4.3.1')paste0() — ทางลัดที่ไม่มีตัวคั่น
paste0() เหมือนกับ paste(..., sep='') ทุกประการ โดยต่อสตริงเข้าด้วยกันโดยไม่มีตัวคั่นระหว่างสตริง เหมาะสำหรับสร้างเส้นทางไฟล์ ชื่อคอลัมน์ หรือ URL ด้วยโปรแกรม
paste0('file_', 1:5, '.csv')
paste0('col_', c('a', 'b', 'c'))
paste0('/home/user/', 'data.csv')การเปลี่ยนตัวคั่นด้วย sep
อาร์กิวเมนต์ sep ควบคุมสิ่งที่จะวางระหว่างอาร์กิวเมนต์แต่ละตัว ใช้สร้างแถว CSV เส้นทางไฟล์ สตริงวันที่ หรือผลลัพธ์ที่มีตัวคั่นรูปแบบใดก็ได้
# Hyphen-separated date
paste('2024', '05', '29', sep = '-')
# Slash-separated path
paste('home', 'user', 'docs', sep = '/')
# Comma-separated
paste('Alice', 'Bob', 'Carol', sep = ', ')paste() แบบทำงานกับเวกเตอร์
paste() ทำงานกับเวกเตอร์ — เมื่อรับเวกเตอร์ จะจับคู่สมาชิกตามตำแหน่ง (และวนใช้เวกเตอร์ที่สั้นกว่าซ้ำหากจำเป็น) ผลลัพธ์มีความยาวเท่ากับเวกเตอร์อินพุตที่ยาวที่สุด
labels <- c('Item', 'Item', 'Item')
numbers <- c(1, 2, 3)
paste(labels, numbers)
# Shorter form using recycling
paste('Item', 1:5)การรวมเวกเตอร์เป็นสตริงเดียว
อาร์กิวเมนต์ collapse จะรวมสมาชิกทั้งหมดของเวกเตอร์ผลลัพธ์ให้เป็นสตริงเดียว โดยใช้ค่าของ collapse เป็นตัวคั่นระหว่างสมาชิก หากไม่ใช้ collapse คุณจะได้เวกเตอร์ข้อความ แต่เมื่อใช้แล้วจะได้สตริงเดียว
fruits <- c('apple', 'banana', 'cherry')
# Without collapse: character vector of length 3
paste('I like', fruits)
# With collapse: single string
paste('I like', fruits, collapse = ' and ')การใช้ sep และ collapse ร่วมกัน
คุณสามารถใช้ทั้ง sep และ collapse ในการเรียกใช้ครั้งเดียวกันได้ โดย sep จะเชื่อมเวกเตอร์ของอาร์กิวเมนต์ตามตำแหน่งก่อน จากนั้น collapse จะรวมเวกเตอร์ข้อความที่ได้ให้เป็นสตริงเดียว
first <- c('John', 'Jane', 'Bob')
last <- c('Doe', 'Smith', 'Brown')
# sep joins first+last, collapse joins all three names
paste(first, last, sep = ' ', collapse = ', ')การใช้ paste0() เพื่อสร้างชื่อตัวแปร
paste0() มักใช้สร้างชื่อตัวแปรหรือคอลัมน์ เส้นทางไฟล์ และสตริงลักษณะเดียวกับ SQL ด้วยโปรแกรม โดยไม่มีตัวคั่นที่ไม่ต้องการ
# Build column names
col_names <- paste0('Q', 1:5, '_score')
print(col_names)
# Build file paths
years <- 2020:2023
files <- paste0('data/report_', years, '.csv')
print(files)การแปลงชนิดตัวเลขใน paste()
paste() จะแปลงตัวเลข ค่าตรรกะ และชนิดอื่น ๆ เป็นสตริงข้อความโดยอัตโนมัติ คุณไม่จำเป็นต้องเรียก as.character() ก่อน — paste() จัดการให้โดยไม่ต้องดำเนินการเพิ่มเติม
n <- 42
pi_val <- 3.14159
flag <- TRUE
paste('Count:', n)
paste('Pi =', pi_val)
paste('Active:', flag)
paste0('n=', n, ' pi=', round(pi_val, 2))การสร้างแถวที่มีรูปแบบคล้าย CSV
ใช้ paste() แบบทำงานกับเวกเตอร์ร่วมกับ collapse = ',' เพื่อสร้างสตริงผลลัพธ์แบบ CSV อย่างง่ายจากดาต้าเฟรม โดยไม่ต้องโหลดแพ็กเกจภายนอก
names_vec <- c('Alice', 'Bob', 'Carol')
scores_vec <- c(85, 92, 78)
rows <- paste(names_vec, scores_vec, sep = ',')
cat(paste(rows, collapse = '\n'))การจัดการ NA ใน paste()
ต่างจากฟังก์ชัน R หลายฟังก์ชัน paste() จะแปลง NA เป็นสตริงตามตัวอักษร 'NA' แทนที่จะส่งต่อค่าที่หายไป ลักษณะนี้มีประโยชน์ แต่อาจทำให้ผู้ใช้ที่คาดหวังการจัดการค่าที่หายไปอย่างเงียบ ๆ ประหลาดใจได้
x <- c('Hello', NA, 'World')
paste(x, '!')
# NA becomes the string 'NA'
result <- paste0('Value: ', NA)
print(result)
print(class(result))รูปแบบการใช้งานจริง: paste() ในรายงาน
paste เหมาะอย่างยิ่งสำหรับสร้างสตริงในรายงานที่อ่านเข้าใจได้สำหรับมนุษย์ ใช้ paste0(), round() และ paste() ร่วมกับ collapse เพื่อสร้างประโยคสรุปจากข้อมูล
mean_score <- 83.7
n_students <- 28
high_score <- 99
msg <- paste0(
'Class summary: ', n_students, ' students, ',
'mean score ', round(mean_score, 1), ', ',
'top score ', high_score, '.'
)
cat(msg)ตรวจสอบความเข้าใจ
อาร์กิวเมนต์ collapse ใน paste() ทำหน้าที่อะไร
paste() และ paste0(): ประเด็นสำคัญ
ประเด็นสำคัญของ paste() และ paste0():
paste(a, b)เชื่อมด้วยช่องว่าง ส่วนpaste0(a, b)เชื่อมโดยไม่มีตัวคั่นsepควบคุมสตริงที่วางระหว่างอาร์กิวเมนต์แต่ละตัวcollapseลดเวกเตอร์ผลลัพธ์ให้เหลือสตริงเดียว- ทั้งสองฟังก์ชันทำงานกับเวกเตอร์และวนใช้อาร์กิวเมนต์ที่สั้นกว่าซ้ำ
NAจะถูกแปลงเป็นสตริงตามตัวอักษร'NA'- ตัวเลขและค่าตรรกะจะถูกแปลงเป็นข้อความโดยอัตโนมัติ
# sep vs collapse at a glance
x <- c('a', 'b', 'c')
y <- c(1, 2, 3)
cat('paste (sep=-) :', paste(x, y, sep = '-'), '\n')
cat('paste (collapse):', paste(x, collapse = '+'), '\n')
cat('paste0 :', paste0(x, y), '\n')คำถามที่พบบ่อย
บทเรียน “การสร้างสตริงด้วย paste() และ paste0()” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างสตริงด้วย paste() และ paste0()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส R Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างสตริงด้วย paste() และ paste0()”
เชื่อมสตริงโดยมีตัวคั่นด้วย paste และ paste0 คุณปฏิบัติ R Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน R Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน R Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างสตริงด้วย paste() และ paste0()” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน R Academy นี้ได้ไหม
ได้ บทเรียน R Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างสตริงด้วย paste() และ paste0()
- ผลลัพธ์ที่จัดรูปแบบด้วย sprintf()
- การแสดงผลด้วย cat() และ print()
- การเติมช่องว่างและจัดแนวสตริง