创建持久的多行字符串

时间:2012-01-31 01:44:00

标签: r newline sendmailr

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

1 个答案:

答案 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>