我试着用 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("File not supplied.\nUsage: ./program F=filename\n")
请注意,cat的 return值为 NULL。
cat
return
NULL
cat()的另一种选择是 writeLines():
cat()
writeLines()
> writeLines("File not supplied.\nUsage: ./program F=filename") File not supplied. Usage: ./program F=filename >
一个优点是,您不必记得在传递给 cat()的字符串后面追加 "\n"来获得消息后面的换行符。例如,将上述输出与相同的 cat()输出进行比较:
"\n"
> 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())来显示字符串。我之所以说“一个版本”,是因为打印出来的数字可能会降低精度,而打印出来的对象可能会增加额外的信息,例如。
print()
使用 writeLines 还可以通过使用 c()省略“ n”换行符:
c()
writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))
如果您计划使用组合的固定和可变输入(例如上面的[第三行的附加文本])编写多行消息,那么这将很有帮助。
您还可以使用 cat和 paste0的组合
paste0
cat(paste0("File not supplied.\n", "Usage: ./program F=filename"))
我发现将变量合并到打印输出中更有用,例如:
file <- "myfile.txt" cat(paste0("File not supplied.\n", "Usage: ./program F=", file))