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

时间:2010-11-01 17:48:53

标签: r

我正在尝试在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

4 个答案:

答案 0 :(得分:113)

cat()的替代方案是writeLines()

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

一个优点是,您不必记住在传递给"\n"的字符串后附加cat()以获取邮件后的换行符。例如。将上述内容与同一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()来显示字符串。我说“版本”是因为印刷数字的精度可能会降低,例如,印刷对象可能会增加额外的信息。

答案 1 :(得分:18)

你可以这样做:

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

请注意,cat的{​​{1}}值为return

答案 2 :(得分:5)

使用writeLines还可以使用<img src="{{ asset('bundles/dist/img/'~ app.user.username ~'.jpg') }}" alt="User Image" class="img-circle" /> 免除“\ n”换行符。如:

c()

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

答案 3 :(得分:-1)

您还可以结合使用catpaste0

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

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

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