在 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
158526 次浏览

你可以这样做:

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

请注意,catreturn值为 NULL

cat()的另一种选择是 writeLines():

> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>

一个优点是,您不必记得在传递给 cat()的字符串后面追加 "\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 级向您显示对象的一个版本-在本例中,它是一个字符串。您需要使用其他函数(如 cat()writeLines())来显示字符串。我之所以说“一个版本”,是因为打印出来的数字可能会降低精度,而打印出来的对象可能会增加额外的信息,例如。

使用 writeLines 还可以通过使用 c()省略“ n”换行符:

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

如果您计划使用组合的固定和可变输入(例如上面的[第三行的附加文本])编写多行消息,那么这将很有帮助。

您还可以使用 catpaste0的组合

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

我发现将变量合并到打印输出中更有用,例如:

file <- "myfile.txt"
cat(paste0("File not supplied.\n", "Usage: ./program F=", file))