0Pricing
R Academy · บทเรียน

การสร้างสตริงด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างสตริงด้วย paste() และ paste0()
  2. ผลลัพธ์ที่จัดรูปแบบด้วย sprintf()
  3. การแสดงผลด้วย cat() และ print()
  4. การเติมช่องว่างและจัดแนวสตริง
← กลับไปที่ R Academy