我想为R中的变量分配一个多行字符串,以便稍后调用该变量。
当我尝试paste("line 1", "line 2", sep = "\n")
时,我得到"line 1\nline 2"
。
当我尝试cat("line 1", "line 2", sep = "\n")
时,我得到了所需的输出,但输出不是持久的(cat()
返回类型为None
的对象)。我尝试使用多行字符串的原因是我需要通过邮件正文中的SMTP服务器(以及包sendmailR
)发送查询结果(而不是作为附件)。
答案 0 :(得分:11)
paste("line 1", "line 2", sep = "\n")
是正确的方法,你得到你想要的东西:
> a = paste("line 1", "line 2", sep = "\n")
> cat(a)
line 1
line 2>
你的困惑可能来自print
转义输出的事实,因此它按照解析器所期望的方式打印字符串:
> print(a)
[1] "line 1\nline 2"
注意字符串周围的引号。 cat
按原样输出输出。在这两种情况下,对象都是相同的,它只是输出格式不同。
显然,您可以在没有paste
的情况下直接创建字符串:
> a = "line1\nline2"
> cat(a)
line1
line2>