มีวิธีพิมพ์ข้อความและเนื้อหาตัวแปรในบรรทัดเดียวกันหรือไม่? ตัวอย่างเช่น,
wd <- getwd()
print("Current working dir: ", wd)
ฉันไม่พบอะไรเกี่ยวกับไวยากรณ์ที่จะทำให้ฉันทำเช่นนี้
มีวิธีพิมพ์ข้อความและเนื้อหาตัวแปรในบรรทัดเดียวกันหรือไม่? ตัวอย่างเช่น,
wd <- getwd()
print("Current working dir: ", wd)
ฉันไม่พบอะไรเกี่ยวกับไวยากรณ์ที่จะทำให้ฉันทำเช่นนี้
คำตอบ:
สตริงแก้ไข {} กาวข้อเสนอที่ดีมากดูคำตอบอื่น ๆ ของฉัน นอกจากนี้ดังที่ Dainis พูดถึงอย่างถูกต้องว่า
sprintf()
ไม่ใช่ปัญหา
นอกจากนี้ยังมีsprintf()
:
sprintf("Current working dir: %s", wd)
หากต้องการพิมพ์ไปยังเอาต์พุตคอนโซลใช้cat()
หรือmessage()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintf
ว่าไม่ได้พิมพ์มันเพียงแค่รูปแบบสตริง บางอย่างเช่นการพิมพ์ (sprintf (... )) เป็นสิ่งที่จำเป็นในสคริปต์
หรือการใช้ message
message("Current working dir: ", wd)
คำตอบ @ agstudy เหมาะสมกว่าที่นี่
วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้ paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
จะส่งผลให้ต่อไปนี้:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
ขอให้สังเกตว่าไม่มีตัวคั่นเริ่มต้นระหว่างสตริงและ x การใช้ช่องว่างที่ส่วนท้ายของสตริงเป็นการแก้ไขด่วน:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
จากนั้นรวมฟังก์ชั่นทั้งสองเข้าด้วยกัน print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
หรือ
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
ตามที่ผู้ใช้รายอื่นระบุไว้คุณสามารถใช้ cat()
{} กาวแพคเกจข้อเสนอการแก้ไขสตริง ในตัวอย่าง{wd}
ถูกแทนที่ด้วยเนื้อหาของตัวแปร สนับสนุนการแสดงออกที่ซับซ้อน
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
สร้างเมื่อ 2019-05-13 โดยแพ็คเกจ reprex (v0.2.1)
หมายเหตุวิธีการส่งออกที่พิมพ์ออกมาไม่ได้มี[1]
สิ่งประดิษฐ์และคำพูดที่ใช้คำตอบอื่น"
ๆcat()
ดังที่ผู้ใช้รายอื่นกล่าวไว้ cat () น่าจะเป็นตัวเลือกที่ดีที่สุด
@krlmlr แนะนำให้ใช้ sprintf () และปัจจุบันเป็นคำตอบอันดับที่สาม sprintf () ไม่ใช่ความคิดที่ดี จากเอกสาร R:
สตริงรูปแบบถูกส่งผ่านลงในฟังก์ชั่น sprintf ของระบบปฏิบัติการและรูปแบบที่ไม่ถูกต้องอาจทำให้กระบวนการหลังล้มเหลว
ไม่มีเหตุผลที่ดีที่จะใช้ sprintf () กับ cat หรือตัวเลือกอื่น ๆ
คุณสามารถใช้ paste0 หรือ cat วิธีการรวมสตริงกับค่าตัวแปรใน R
ตัวอย่างเช่น:
paste0("Value of A : ", a)
cat("Value of A : ", a)
sep = ''
หรือคุณจะได้รับพื้นที่เพิ่มเติม