代码之家  ›  专栏  ›  技术社区  ›  highBandWidth

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

r
  •  100
  • highBandWidth  · 技术社区  · 14 年前

    我试图在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
    
    3 回复  |  直到 14 年前
        1
  •  124
  •   Gavin Simpson    14 年前

    替代品 cat() writeLines() :

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

    一个优点是你不必记住附加一个 "\n" 猫() 在你的留言后换行。E、 g.将上述内容与相同内容进行比较 输出:

    > 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() 打印() 从R级别向您显示对象的版本-在本例中,它是一个字符串。您需要使用其他函数,如 猫() 显示字符串。我之所以说“版本”,是因为印刷数字的精度可能会降低,而印刷对象可能会增加额外的信息,例如。

        2
  •  22
  •   Shane    14 年前

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

    请注意 cat 有一个 return 价值 NULL

        3
  •  5
  •   user3071284    9 年前

    使用writeLines还允许您通过使用 c()

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

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

        4
  •  -1
  •   mikey    5 年前

    您还可以使用 cat paste0

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

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

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