使用R中的print()打印换行符

hig*_*dth 104 r

我试图在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)

请注意,catreturn值为NULL.

  • 但不要忘记尾随的新行. (3认同)

use*_*217 5

使用writeLines还可以通过使用来省去"\n"换行符c().如:

writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))
Run Code Online (Sandbox Code Playgroud)

如果您计划编写带有固定和可变输入组合的多行消息,例如上面的[第三行附加文本],这将非常有用.