ฉันพยายามพิมพ์ข้อความหลายบรรทัดใน R ตัวอย่างเช่น
print("File not supplied.\nUsage: ./program F=filename",quote=0)
ฉันได้รับผลลัพธ์
File not supplied.\nUsage: ./program F=filename
แทนที่ต้องการ
File not supplied.
Usage: ./program F=filename
ฉันพยายามพิมพ์ข้อความหลายบรรทัดใน R ตัวอย่างเช่น
print("File not supplied.\nUsage: ./program F=filename",quote=0)
ฉันได้รับผลลัพธ์
File not supplied.\nUsage: ./program F=filename
แทนที่ต้องการ
File not supplied.
Usage: ./program F=filename
คำตอบ:
อีกทางเลือกหนึ่งcat()
คือwriteLines()
:
> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>
ข้อดีคือคุณไม่จำเป็นต้องจำไว้ว่าต้องต่อท้าย"\n"
สตริงที่ส่งไปcat()
เพื่อขึ้นบรรทัดใหม่หลังข้อความของคุณ เช่นเปรียบเทียบข้างต้นกับcat()
ผลลัพธ์เดียวกัน:
> cat("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename>
และ
> cat("File not supplied.\nUsage: ./program F=filename","\n")
File not supplied.
Usage: ./program F=filename
>
เหตุผลที่print()
ไม่ทำตามที่คุณต้องการคือprint()
แสดงเวอร์ชันของอ็อบเจ็กต์จากระดับ R - ในกรณีนี้คือสตริงอักขระ คุณต้องใช้ฟังก์ชันอื่น ๆ เช่นcat()
และwriteLines()
เพื่อแสดงสตริง ฉันพูดว่า "เวอร์ชัน" เนื่องจากความแม่นยำในตัวเลขที่พิมพ์อาจลดลงและวัตถุที่พิมพ์อาจถูกเติมเต็มด้วยข้อมูลเพิ่มเติมเป็นต้น
ใช้ writeLines ยังช่วยให้คุณที่จะแจกจ่ายกับ "\ n" c()
ตัวอักษรขึ้นบรรทัดใหม่โดยการใช้ ใน:
writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))
สิ่งนี้มีประโยชน์หากคุณวางแผนที่จะเขียนข้อความหลายบรรทัดโดยมีการป้อนค่าคงที่และตัวแปรรวมกันเช่น [ข้อความเพิ่มเติมสำหรับบรรทัดที่สาม] ด้านบน
คุณยังสามารถใช้การรวมกันของcat
และpaste0
cat(paste0("File not supplied.\n", "Usage: ./program F=filename"))
ฉันพบว่าสิ่งนี้มีประโยชน์มากขึ้นเมื่อรวมตัวแปรลงในงานพิมพ์ ตัวอย่างเช่น:
file <- "myfile.txt"
cat(paste0("File not supplied.\n", "Usage: ./program F=", file))
writelines
ดูเหมือนทั้งสองและ "cat" จะไม่เขียนถึงตัวแปร ฉันพยายามสร้างตัวแปรสตริงที่มีหลายบรรทัดstringvar <- writeLines("line1\nline2")
ไม่ได้กำหนดstringvar
ผลตอบแทนยังคงเป็นโมฆะทางเลือกอื่น?