การแสดงผลด้วย cat() และ print()
แยกความแตกต่างระหว่าง cat() สำหรับผลลัพธ์ในคอนโซลกับ print() สำหรับออบเจ็กต์
การแสดงผลด้วย cat() และ print() เป็นบทเรียน R Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน R Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน
print() — ฟังก์ชันแสดงผลเริ่มต้น
print() เป็นเมธอดเริ่มต้นของ R สำหรับแสดงออบเจ็กต์ โดยใช้คลาสของออบเจ็กต์เพื่อเลือกเมธอดจัดรูปแบบที่เหมาะสม ในเซสชันแบบโต้ตอบ การพิมพ์ชื่อตัวแปรมีความหมายเทียบเท่ากับการเรียกใช้ print() กับตัวแปรนั้น
x <- c(1, 2, 3, 4, 5)
print(x)
# Equivalent to:
xcat() — การแสดงผลอักขระดิบ
cat() เชื่อมอาร์กิวเมนต์เข้าด้วยกันและแสดงผลเป็นข้อความดิบ โดยไม่มีเครื่องหมายอัญประกาศครอบ ไม่มีตัวระบุดัชนีอย่าง [1] และโดยค่าเริ่มต้นจะไม่ขึ้นบรรทัดใหม่ท้ายข้อความ ฟังก์ชันนี้ออกแบบมาสำหรับแสดงผลข้อความที่จัดรูปแบบแล้ว ไม่ใช่สำหรับแสดงออบเจ็กต์ของ R
name <- 'Alice'
age <- 30
cat('Name:', name, '\n')
cat('Age:', age, '\n')
cat('Score:', 92.5, '\n')ความแตกต่างสำคัญ: เครื่องหมายอัญประกาศและ [1]
ความแตกต่างที่เห็นได้ชัดที่สุดคือวิธีแสดงสตริงอักขระ print() จะใส่เครื่องหมายอัญประกาศครอบสตริงและเพิ่ม [1] ส่วน cat() จะแสดงอักขระดิบโดยไม่มีการตกแต่งเพิ่มเติม
msg <- 'Hello World'
print(msg)
cat(msg, '\n')cat() กับอาร์กิวเมนต์ sep
cat() รับอาร์กิวเมนต์ sep ซึ่งจะแทรกระหว่างรายการเอาต์พุตแต่ละรายการ ค่าเริ่มต้นคือช่องว่างหนึ่งช่อง ใช้ sep = '' หากไม่ต้องการตัวคั่น หรือใช้สตริงอื่นเพื่อจัดรูปแบบเอาต์พุตอย่างแม่นยำ
cat('a', 'b', 'c', sep = '')
cat('a', 'b', 'c', sep = '-')
cat(1:5, sep = ', ')
cat('x =', 42, sep = '')cat() กับอาร์กิวเมนต์ fill
อาร์กิวเมนต์ fill จะเพิ่มการขึ้นบรรทัดใหม่เมื่อเอาต์พุตมีความกว้างเกินค่าที่กำหนด (หน่วยเป็นอักขระ) การตั้งค่า fill = TRUE จะใช้ตัวเลือก width ปัจจุบัน เหมาะสำหรับตัดข้อความที่มีคำจำนวนมากให้ขึ้นบรรทัดใหม่
words <- c('The', 'quick', 'brown', 'fox', 'jumps',
'over', 'the', 'lazy', 'dog')
cat(words, fill = 30)การเลือกเมธอดของ print()
print() เป็นฟังก์ชันแบบทั่วไป — ฟังก์ชันจะเลือกใช้เมธอดเฉพาะของแต่ละคลาส ตัวอย่างเช่น print.data.frame จัดรูปแบบดาต้าเฟรมให้อ่านง่าย ส่วน print.factor แสดงระดับต่าง ๆ เป็นต้น นี่จึงเป็นเหตุผลที่การเรียกใช้แบบเดียวกันให้ผลลัพธ์ต่างกันสำหรับออบเจ็กต์แต่ละชนิด
# print dispatches differently per class
print(42L) # integer
print(factor(c('a', 'b', 'a'))) # factor with levels
print(list(x = 1, y = 'hi')) # listinvisible() — ปิดการแสดงผลอัตโนมัติ
invisible(x) คืนค่าอาร์กิวเมนต์ของฟังก์ชัน แต่ปิดการแสดงผลอัตโนมัติเมื่อมีการคืนค่าจากฟังก์ชันหรือนิพจน์ ใช้ในฟังก์ชันที่ต้องการคืนค่าโดยไม่แสดงผล เช่น โอเปอเรเตอร์กำหนดค่า
# Explicit print shows the value
f <- function(x) invisible(x * 2)
result <- f(5)
# Nothing printed automatically
f(5)
# But print() forces it
print(f(5))message() — ไปยัง stderr
message() เขียนข้อมูลไปยัง stderr แทนที่จะเป็น stdout และจะเพิ่มการขึ้นบรรทัดใหม่โดยอัตโนมัติ ต่างจาก cat() หรือ print() ข้อความสามารถปิดได้ด้วย suppressMessages() และดักจับได้ด้วย tryCatch()
message('This goes to stderr')
cat('This goes to stdout\n')
# Suppress messages:
suppressMessages(message('hidden'))
cat('Still visible\n')ควรใช้ cat() หรือ print() เมื่อใด
ใช้ cat() เมื่อต้องการสร้างเอาต์พุตข้อความที่มนุษย์อ่านได้ เช่น บรรทัดบันทึก ข้อความแสดงความคืบหน้า และรายงานที่จัดรูปแบบแล้ว ใช้ print() เมื่อต้องการตรวจสอบออบเจ็กต์ของ R โดยคงข้อมูลชนิดและโครงสร้างของออบเจ็กต์ไว้อย่างครบถ้วน
# cat() for formatted output
cat(sprintf('Processing %d records...\n', 500))
cat('Done.\n')
# print() to inspect objects
result <- list(n = 500, mean = 4.2, sd = 1.1)
print(result)การใช้ print() กับดาต้าเฟรม
print.data.frame จัดรูปแบบดาต้าเฟรมโดยแสดงหมายเลขแถว หัวคอลัมน์ และค่าที่จัดแนวตรงกัน คุณควบคุมจำนวนแถวที่แสดงได้ด้วยรูปแบบ print(df, n = k) หรือใช้ head() ก่อนแสดงผล
df <- data.frame(
name = c('Alice', 'Bob', 'Carol'),
score = c(88, 95, 72)
)
print(df)cat() สำหรับแสดงความคืบหน้าของลูป
การใช้งาน cat() ที่เป็นประโยชน์อย่างหนึ่งคือการแสดงความคืบหน้าของลูป เนื่องจาก cat() ไม่เพิ่มการขึ้นบรรทัดใหม่โดยอัตโนมัติ คุณจึงสร้างบรรทัดทีละส่วนได้ แล้วจึงปิดท้ายด้วย '\n'
for (i in 1:5) {
cat(sprintf('Processing file %d of 5...\n', i))
}
cat('All files processed.\n')ตรวจสอบความเข้าใจอย่างรวดเร็ว
ฟังก์ชันแสดงผลใดเขียนข้อมูลไปยัง stderr เพิ่มการขึ้นบรรทัดใหม่โดยอัตโนมัติ และสามารถปิดได้ด้วย suppressMessages()?
ฟังก์ชันแสดงผล: ประเด็นสำคัญ
ประเด็นสำคัญเกี่ยวกับฟังก์ชันแสดงผลของ R:
print(x)— ใช้ตรวจสอบออบเจ็กต์ของ R ใช้การจัดรูปแบบเฉพาะคลาส และเพิ่ม[1]กับเครื่องหมายอัญประกาศcat(...)— แสดงข้อความดิบ ไม่มีเครื่องหมายอัญประกาศ ไม่ขึ้นบรรทัดใหม่อัตโนมัติ ต้องใช้'\n'อย่างชัดเจนcat()รับsepและfillเพื่อควบคุมการจัดรูปแบบinvisible(x)— คืนค่า x โดยไม่แสดงผลอัตโนมัติmessage()— ส่งไปยัง stderr ขึ้นบรรทัดใหม่อัตโนมัติ และปิดได้ด้วยsuppressMessages()- ใช้
cat()/sprintf()ร่วมกันสำหรับรายงานและบันทึกที่จัดรูปแบบแล้ว
x <- 'result'
print(x) # shows: [1] "result"
cat(x, '\n') # shows: result
message('info: ', x) # goes to stderr
f <- function() invisible(42)
f() # nothing printed
print(f()) # forces print: [1] 42คำถามที่พบบ่อย
บทเรียน “การแสดงผลด้วย cat() และ print()” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแสดงผลด้วย cat() และ print()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส R Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแสดงผลด้วย cat() และ print()”
แยกความแตกต่างระหว่าง cat() สำหรับผลลัพธ์ในคอนโซลกับ print() สำหรับออบเจ็กต์ คุณปฏิบัติ R Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน R Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน R Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การแสดงผลด้วย cat() และ print()” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน R Academy นี้ได้ไหม
ได้ บทเรียน R Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างสตริงด้วย paste() และ paste0()
- ผลลัพธ์ที่จัดรูปแบบด้วย sprintf()
- การแสดงผลด้วย cat() และ print()
- การเติมช่องว่างและจัดแนวสตริง