创建持久的多行字符串

Jub*_*les 4 newline r sendmailr

我想为R中的变量分配一个多行字符串,以便我可以稍后调用该变量.当我尝试paste("line 1", "line 2", sep = "\n")我得到"line 1\nline 2".当我尝试时cat("line 1", "line 2", sep = "\n"),我得到了所需的输出,但这是输出不是持久的(cat()返回类型的对象None).我尝试使用多行字符串的原因是我需要通过sendmailR邮件正文中的SMTP服务器(和包)发送查询结果(而不是作为附件).

Sim*_*nek 11

paste("line 1", "line 2", sep = "\n") 是正确的方法,你得到你的意图:

> a = paste("line 1", "line 2", sep = "\n")
> cat(a)
line 1
line 2> 
Run Code Online (Sandbox Code Playgroud)

您的混淆可能来自print逃避输出的事实,因此它按照解析器所期望的方式打印字符串:

> print(a)
[1] "line 1\nline 2"
Run Code Online (Sandbox Code Playgroud)

请注意字符串周围的引号.cat按原样打印输出.在这两种情况下,对象都是相同的,它只是输出格式不同.

显然,您可以直接创建字符串,而无需paste:

> a = "line1\nline2"
> cat(a)
line1
line2> 
Run Code Online (Sandbox Code Playgroud)