我试图在R中打印多行消息.例如,
print("File not supplied.\nUsage: ./program F=filename",quote=0)
Run Code Online (Sandbox Code Playgroud)
我得到了输出
File not supplied.\nUsage: ./program F=filename
Run Code Online (Sandbox Code Playgroud)
而不是期望的
File not supplied.
Usage: ./program F=filename
Run Code Online (Sandbox Code Playgroud)
Rei*_*son 118
另一种选择cat()是writeLines():
> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>
Run Code Online (Sandbox Code Playgroud)
一个优点是你不必记得"\n"在传递给cat()你的消息之后添加一个字符串来获取换行符.例如,将上述内容与同一cat()输出进行比较:
> cat("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename>
Run Code Online (Sandbox Code Playgroud)
和
> cat("File not supplied.\nUsage: ./program F=filename","\n")
File not supplied.
Usage: ./program F=filename
>
Run Code Online (Sandbox Code Playgroud)
原因print()不是你想要的是print()从R级别显示对象的一个版本 - 在这种情况下它是一个字符串.您需要使用其他功能,如cat()与writeLines()显示的字符串.我说"版本"是因为印刷数字的精度可能会降低,例如,印刷对象可能会增加额外的信息.
Sha*_*ane 22
你可以这样做:
cat("File not supplied.\nUsage: ./program F=filename\n")
Run Code Online (Sandbox Code Playgroud)
请注意,cat其return值为NULL.
使用writeLines还可以通过使用来省去"\n"换行符c().如:
writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))
Run Code Online (Sandbox Code Playgroud)
如果您计划编写带有固定和可变输入组合的多行消息,例如上面的[第三行附加文本],这将非常有用.