在格式化文本中粘贴带有 newline/return 的文本

paste text with a newline/return in formatted text

我想创建一个用于邮寄地址的专栏,但在创建新专栏时我无法使用 newline/return 回车符或 <br/>

name = c("John Smith", "Patty Smith", "Sam Smith")
address = c("111 Main St.", "222 Main St.", "555 C Street")
cityState = c("Portland, OR 97212", "Portland, OR 95212", "Portland, OR 99212")
df <- data.frame(name, address, cityState)

我想创建一个列来格式化地址标签中的数据: 约翰·史密斯 主街 111 号 俄勒冈州波特兰 97212

每个新列:每行后都有一个 return:所以它总是 3 行。其他 3 列各占一行。

# example of what I am trying to do... 
paste0(name, "return", address, "return", cityState).  Everything I have tried does not work for making a newline.

要换行(或 return),我们使用 \n。所以

addr = paste(name,  address, cityState, sep="\n")

要查看结果只需使用 cat

> cat(addr[1])
#John Smith
#111 Main St.
#Portland, OR 97212

函数 cat 只是打印到屏幕。


制表符的另一个标准字符是 \t-space。

您需要将其与换行符 (\n) 分隔符一起粘贴。从 df

到 assemble
addresses <- apply(df, 1, paste, collapse = '\n')

如果你正常打印,它会显示\n个字符:

addresses
## [1] "John Smith\n111 Main St.\nPortland, OR 97212" 
## [2] "Patty Smith\n222 Main St.\nPortland, OR 95212"
## [3] "Sam Smith\n555 C Street\nPortland, OR 99212"  

要使用评估的换行符进行打印,请使用 cat,还可以使用 sep = '\n' 在项目之间插入换行符:

cat(addresses, sep = '\n')
## John Smith
## 111 Main St.
## Portland, OR 97212
## Patty Smith
## 222 Main St.
## Portland, OR 95212
## Sam Smith
## 555 C Street
## Portland, OR 99212