在R中用print()打印换行符

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

一个好处是,你不必记得在传递给cat()的string中附加一个"\n"来在你的消息之后得到一个换行符。 例如比较上面的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级别的对象的版本 – 在这种情况下,它是一个string。 您需要使用其他函数,如cat()writeLines()来显示string。 我说“一个版本”,因为打印的数字可能会降低精度,并且打印的对象可能会增加额外的信息,例如。

你可以这样做:

 cat("File not supplied.\nUsage: ./program F=filename\n") 

请注意, catreturn值为NULL

使用writeLine还可以使用c()来免除“\ n”换行符。 如:

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

如果您计划使用固定input和可变input相结合的方式编写多行消息,例如上面的[第三行的附加文本],这会很有帮助。