我正在尝试用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
c9qzyr3d1#
cat()的替代方案是writeLines():
cat()
writeLines()
> writeLines("File not supplied.\nUsage: ./program F=filename") File not supplied. Usage: ./program F=filename >
一个优点是,您不必记住将"\n"附加到传递给cat()的字符串中,以在消息后获得换行符。例如,将上述内容与相同的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()
af7jpaap2#
你可以这样做:
cat("File not supplied.\nUsage: ./program F=filename\n")
请注意,cat的return值为NULL。
cat
return
NULL
a2mppw5e3#
使用writeLines还允许您通过使用c()来省去“\n”换行符。如:
c()
writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))
如果您计划编写一个包含固定和可变输入的多行消息,例如上面的[additional text for third line],这将很有帮助。
ryevplcw4#
也可以组合使用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))
bxfogqkk5#
如果我使用循环,我喜欢使用print(noquote(""))在每次迭代后打印一个换行符。
print(noquote(""))
5条答案
按热度按时间c9qzyr3d1#
cat()
的替代方案是writeLines()
:一个优点是,您不必记住将
"\n"
附加到传递给cat()
的字符串中,以在消息后获得换行符。例如,将上述内容与相同的cat()
输出进行比较:和/或
print()
不能实现您所希望的功能的原因是print()
显示的是R级别的对象版本-在本例中是字符串。您需要使用其他函数,如cat()
和writeLines()
来显示字符串。我说“一个版本”是因为印刷数字的精确度可能会降低,而印刷对象可能会增加额外的信息。af7jpaap2#
你可以这样做:
请注意,
cat
的return
值为NULL
。a2mppw5e3#
使用writeLines还允许您通过使用
c()
来省去“\n”换行符。如:如果您计划编写一个包含固定和可变输入的多行消息,例如上面的[additional text for third line],这将很有帮助。
ryevplcw4#
也可以组合使用
cat
和paste0
我发现这在将变量合并到打印输出中时更有用。例如:
bxfogqkk5#
如果我使用循环,我喜欢使用
print(noquote(""))
在每次迭代后打印一个换行符。