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

u91tlkcl  于 2023-06-03  发布在  其他
关注(0)|答案(5)|浏览(325)

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

c9qzyr3d1#

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()来显示字符串。我说“一个版本”是因为印刷数字的精确度可能会降低,而印刷对象可能会增加额外的信息。

af7jpaap

af7jpaap2#

你可以这样做:

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

请注意,catreturn值为NULL

a2mppw5e

a2mppw5e3#

使用writeLines还允许您通过使用c()来省去“\n”换行符。如:

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

如果您计划编写一个包含固定和可变输入的多行消息,例如上面的[additional text for third line],这将很有帮助。

ryevplcw

ryevplcw4#

也可以组合使用catpaste0

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

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

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

bxfogqkk5#

如果我使用循环,我喜欢使用print(noquote(""))在每次迭代后打印一个换行符。

相关问题